package ohjausrak; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import java.awt.Font; import javax.swing.BoxLayout; import javax.swing.JRadioButton; import javax.swing.border.CompoundBorder; import javax.swing.border.LineBorder; import java.awt.Color; import javax.swing.JButton; import java.awt.Component; import javax.swing.Box; import javax.swing.ButtonModel; import javax.swing.JOptionPane; import javax.swing.UIManager; import javax.swing.WindowConstants; import javax.swing.ButtonGroup; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.SwingConstants; /** * Pieni esimerkki ��nestys-ohjelmasta switch-lauseen demonstroimiseksi. * * @author Vesa Lappalainen * @version 6.2.2011 */ public class SwingAanestys extends JFrame { private static final long serialVersionUID = 1L; private JPanel contentPane; private final JLabel labelAihe = new JLabel("Onko ohjelmointi kivaa?"); private final JPanel panelAanestys = new JPanel(); private final JPanel panelValinta = new JPanel(); private final JLabel lblValitse = new JLabel("Valitse"); private final JRadioButton rb0 = new JRadioButton("Kyll\u00E4"); private final JRadioButton rb1 = new JRadioButton("Ei"); private final JRadioButton rb2 = new JRadioButton("En osaa sanoa"); private final JButton buttonAanesta = new JButton("\u00C4\u00E4nest\u00E4"); private final Component verticalStrut = Box.createVerticalStrut(20); private final ButtonGroup groupAanestys = new ButtonGroup(); /** * Launch the application. * @param args Ei k�yt�ss� */ public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { @Override public void run() { try { SwingAanestys frame = new SwingAanestys(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public SwingAanestys() { setTitle("\u00C4\u00E4nestys"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setBounds(100, 100, 251, 271); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); labelAihe.setFont(new Font("Arial", Font.BOLD, 19)); contentPane.add(labelAihe, BorderLayout.NORTH); contentPane.add(panelAanestys, BorderLayout.CENTER); panelAanestys.setBorder(new EmptyBorder(20, 20, 20, 20)); panelAanestys.setLayout(new BoxLayout(panelAanestys, BoxLayout.Y_AXIS)); panelValinta.setToolTipText("Valitse \u00E4\u00E4nestett\u00E4v\u00E4 kohde"); panelValinta.setFont(new Font("Arial", Font.BOLD, 15)); panelValinta.setBorder(new CompoundBorder(new LineBorder(new Color(0, 0, 0), 1, true), new EmptyBorder(10, 10, 10, 10))); panelAanestys.add(panelValinta); panelValinta.setLayout(new BoxLayout(panelValinta, BoxLayout.Y_AXIS)); panelValinta.add(lblValitse); groupAanestys.add(rb0); rb0.setHorizontalAlignment(SwingConstants.TRAILING); rb0.setSelected(true); rb0.setMnemonic('K'); panelValinta.add(rb0); groupAanestys.add(rb1); rb1.setMnemonic('E'); panelValinta.add(rb1); groupAanestys.add(rb2); rb2.setMnemonic('O'); panelValinta.add(rb2); panelAanestys.add(verticalStrut); buttonAanesta.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { aanesta(); } }); panelAanestys.add(buttonAanesta); getRootPane().setDefaultButton(buttonAanesta); } /// Omat aliohjelmat /** * ��nestet��n sen perusteella mit� on valittuna */ protected void aanesta() { ButtonModel b = groupAanestys.getSelection(); char nappain = (char)b.getMnemonic(); String kohde = ""; switch (nappain) { case 'K': kohde = "Kyll�"; break; case 'E': kohde = "Ei"; break; case 'O': kohde = "En osaa sanoa"; break; } JOptionPane.showMessageDialog(null,"��nestit siis: " + kohde); } }