import java.awt.*; import javax.swing.*; import java.awt.event.*; /* Käyttäjäkeskeytyksiin reagoivien Swing-komponentti- luokkien tekeminen. Komponentteihin reagoivat raja- pinnat on otettu mukaab implements määrityksellä: - ActionListener reagoi erilaisiin keskeytyksiin. - actionPerformed() metodissa jäjitetään keskeytykset */ public class RSwing01 extends JApplet implements ActionListener { // Luodaan tiedon käsittelyn käynnistyspainike JButton nappi = new JButton("Tutki tieto"); // Luodaan tekstinnäyttökomponentti JLabel ohje = new JLabel("Anna tieto:", JLabel.RIGHT); JLabel tulos = new JLabel("Tulos on", JLabel.RIGHT); // Luodaan tekstinsyöttökomponentti JTextField syote = new JTextField(5); public void init() { // Luodaan komponentteihin erikoistunut asettelijaolio // tyyppiä FlowLayout FlowLayout asettelija = new FlowLayout(FlowLayout.LEFT); // Luodaan säiliö nimeltä sailio Container rivi = getContentPane(); // Määritä ohje-komponentin mukainen korkeus ja leveys int height = ohje.getPreferredSize().height; int width = ohje.getPreferredSize().width; Dimension dim = new Dimension(width+5, height); ohje.setPreferredSize(dim); // Muodostetaan rivi-säiliö valitulla asettelijalla rivi.setLayout(asettelija); // Lisää komponentut riville rivi.add(nappi); rivi.add(ohje); rivi.add(syote); rivi.add(tulos); // Muodosta rivi näytölle setContentPane(rivi); // Lisää käynnistyspainikkeeseen keskeytyksen tunnustelija nappi.addActionListener(this); } // Kirjoita keskeytyksen tutkimismetodi public void actionPerformed(ActionEvent e) { String komento = e.getActionCommand(); tulos.setText("Keskeytyksen aiheutti \"" + komento + "\""); // TODO: koodaa tähän tiedon käsittelyosa } }