import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class EkaSovellus { // esitellään pääkehys, johon komponentit sijoitetaan JFrame kehys; // luokka, johon komponentit lisätään JPanel komponentit; // Määritellään tavalliset komponentit JButton nappi; JLabel teksti_ikoni; Icon kuva1, kuva2; static int laskuri = 0; public EkaSovellus() { kehys = new JFrame("Ensimmäinen Swing-sovellus"); teksti_ikoni = new JLabel("Tämä on ensimmäinen Swing-esimerkki", kuva1, SwingConstants.RIGHT); // Luodaan painike, johon liitetään pikanäppäin // (Järjestelmä_painike (Win/java: alt) + P) nappi = new JButton("Vaihda ikonia"); nappi.setMnemonic(KeyEvent.VK_P); nappi.addActionListener(new PainikeKuuntelija()); // kuvien määrittely kuva1 = new ImageIcon("../kuvat/swing1.gif"); kuva2 = new ImageIcon("../kuvat/swing2.gif"); // Luodaan komponenteille paneeli, johon ne sijoitetaan komponentit = new JPanel(); komponentit.setLayout(new GridLayout(0,1)); komponentit.setBorder(BorderFactory.createEmptyBorder(20, 20, 100, 100)); komponentit.add(nappi); komponentit.add(teksti_ikoni); // lisätään komponentit kehykseen kehys.getContentPane().add(komponentit, BorderLayout.CENTER); // Kehyksen näyttäminen ja tapahtumankäsittelyn liittäminen kehys.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); kehys.pack(); // pakataan komponentit kehykseen kehys.setVisible(true); } // Painikkeen tapahtumankäsittely class PainikeKuuntelija implements ActionListener { public void actionPerformed(ActionEvent e) { laskuri++; if (laskuri %2 == 0) { teksti_ikoni.setIcon(kuva1); teksti_ikoni.setText("Se oli " + laskuri + " napsautus"); } else { teksti_ikoni.setIcon(kuva2); teksti_ikoni.setText("Se oli " + laskuri + " napsautus"); } } } }