package guiAanestys;
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.JButton;
import java.awt.Component;
import javax.swing.Box;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import guiAanestys.PanelValinta.SelectionChangeListener;
/**
* Pieni esimerkki äänestys-ohjelmasta.
*
* Lisätehtävä pääteohjauksen 5 aluksi:
*
* Tehtäviä: * 1) Muuta ohjelma sellaiseksi, että se kysyy * Kyllä, Ei, En osaa sanoa tilalla * Oletko Tyttö,Poika,Mies vaiko Nainen * ja näyttää sen jälkeen sopivan ilmoituksen tästä. * * 2) Muuta ohjelmaa edelleen siten, että se äänesystuloksen * ilmoituksen yhteydessä näyttää montako * tyttöä/poikaa/miestä/naista * on vastattu tähän mennessä. ** * @author vesal * @version 6.2.2011 */ public class SwingAanestys2 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 JButton buttonAanesta = new JButton("\u00C4\u00E4nest\u00E4"); private final Component verticalStrut = Box.createVerticalStrut(20); private final PanelValinta panelValinta = new PanelValinta(); private final JLabel labelValittu = new JLabel(" "); /** * 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 { SwingAanestys2 frame = new SwingAanestys2(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public SwingAanestys2() { setTitle("\u00C4\u00E4nestys"); setDefaultCloseOperation(JFrame.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.WEST); panelAanestys.setBorder(new EmptyBorder(20, 20, 20, 20)); panelAanestys.setLayout(new BoxLayout(panelAanestys, BoxLayout.Y_AXIS)); panelValinta.setFont(new Font("Tahoma", Font.BOLD, 14)); panelValinta.addSelectionChangeListener(new SelectionChangeListener() { public void selectionChange(PanelValinta sender) { labelValittu.setText("Valittu: "+sender.getSelectedText()); } }); labelValittu.setAlignmentX(Component.CENTER_ALIGNMENT); panelAanestys.add(labelValittu); panelAanestys.add(panelValinta); panelAanestys.add(verticalStrut); buttonAanesta.setAlignmentX(Component.CENTER_ALIGNMENT); buttonAanesta.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { aanesta(); } }); panelAanestys.add(buttonAanesta); getRootPane().setDefaultButton(buttonAanesta); panelValinta.setKohteet(kohteet); panelValinta.setMnemonics(mnemo); } /// Omat aliohjelmat private String[] kohteet = {"Kyllä","Ei","En osaa sanoa"}; private String mnemo = "KEO"; private void aanesta() { // char nappain = panelValinta.getSelectedChar(); // int i = mnemo.indexOf(nappain); String kohde = ""; int i = panelValinta.getSelectedIndex(); if ( i >= 0 ) kohde = kohteet[i]; JOptionPane.showMessageDialog(null,"Äänestit siis: " + kohde); } }