package teknolit.fi.MenuTesti; import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class MenuLuokka extends JFrame { // luokka, johon komponentit lisätään JPanel komponentit; JLabel teksti_ikoni; Icon kuva1, kuva2; static int laskuri = 0; public MenuLuokka() { this.setTitle("Valikoiden käyttö"); teksti_ikoni = new JLabel("Valitse kuva -valikon valinta muuttaa tekstiä ja kuvaa!", kuva1, SwingConstants.RIGHT); // kuvien määrittely kuva1 = new ImageIcon("swing1.gif"); kuva2 = new ImageIcon("swing2.gif"); // Luodaan komponenteille paneeli, johon ne sijoitetaan. komponentit = new JPanel(); komponentit.setLayout(new GridLayout(0,1)); komponentit.setBorder(BorderFactory.createEmptyBorder(20, 20, 130, 80)); komponentit.add(teksti_ikoni); // Lisätään komponentit kehykseen. this.getContentPane().add(komponentit, BorderLayout.CENTER); // Lisätään metodissa luo_valikko() luotu valikkopalkki this.setJMenuBar(luo_valikko()); // Kehyksen näyttäminen ja tapahtumankäsittelyn liittäminen this.addWindowListener ( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); this.pack(); // pakataan komponentit kehykseen this.setVisible(true); } public JMenuBar luo_valikko() { // Valikkopalkin luominen JMenuBar menu_palkki = new JMenuBar(); // Luodaan tiedosto-valikko JMenu tiedosto_menu = new JMenu("Tiedosto"); JMenuItem sulje = new JMenuItem("Sulje", 'S'); tiedosto_menu.add(sulje); sulje.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } } ); menu_palkki.add(tiedosto_menu); // luodaan kuva-valikko (toinen vasemmalta) ja lisätään pikanäppäimet JMenu kuvat = new JMenu("Valitse kuva"); kuvat.setMnemonic(KeyEvent.VK_V); JMenuItem eka = new JMenuItem("eka", 'e'); eka.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK)); eka.addActionListener(new ValikkoKuuntelija()); JMenuItem toka = new JMenuItem("toka", 't'); toka.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_MASK)); eka.addActionListener(new ValikkoKuuntelija()); toka.addActionListener(new ValikkoKuuntelija()); kuvat.add(eka); kuvat.add(toka); menu_palkki.add(kuvat); // Malli alavalikosta ja alkioden lisäämisestä siihen JMenu lisavalikko = new JMenu("Lisävalikko"); JMenu alavalikko = new JMenu("ValintaPainikkeet"); alavalikko.add(new JCheckBoxMenuItem(new ImageIcon("Swing1.gif"))); alavalikko.add(new JCheckBoxMenuItem(new ImageIcon("Swing2.gif"))); lisavalikko.add(alavalikko); menu_palkki.add(lisavalikko); return menu_palkki; } // Valikon tapahtumankäsittely // class ValikkoKuuntelija implements ActionListener { public void actionPerformed(ActionEvent e) { String valittu=""; if (e.getSource() instanceof JMenuItem) valittu = e.getActionCommand(); if (valittu.equals("eka")) { teksti_ikoni.setIcon(kuva1); teksti_ikoni.setText("Se oli " + laskuri + " napsautus"); laskuri++; } else if (valittu.equals("toka")) { teksti_ikoni.setIcon(kuva2); teksti_ikoni.setText("Se oli " + laskuri + " napsautus"); laskuri++; } else teksti_ikoni.setText("Valintaa ei käsitellä! Se oli " + laskuri + " napsautus"); } } }