Mehrere Möglichkeiten zum Hinzufügen von Ereignissen in Java (mit geringfügigen Änderungen aus dem Artikel von Codebrother abgedruckt):
/** * Java-Ereignisüberwachungsverarbeitung – eine eigene Klasse implementiert die ActionListener-Schnittstelle als Ereignis-Listener* * @author codebrother */class EventListener1 erweitert JFrame implementiert ActionListener { private JButton btBlue, btDialog; public EventListener1() { setTitle("Java GUI Ereignisüberwachungsverarbeitung"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Pop-up"); // Ereignis-Listener zur Schaltfläche hinzufügen btDialog.addActionListener(this); btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } // ***************************Ereignisbehandlung******* ******* **************** @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btBlue) { Container c = getContentPane( ); c.setBackground(Color .BLUE); } else if (e.getSource() == btDialog) { JDialog dialog = new JDialog(); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }}/** * Java Event Listening Processing – interne Klassenverarbeitung * * @author codebrother * / class EventListener3 erweitert JFrame { private JButton btBlue, btDialog; // Konstruktor public EventListener3() { setTitle("Java GUI Event Listening and Processing"); setLayout(new FlowLayout()); btDialog = new JButton("Pop-up window" ); // Event-Listener-Objekt hinzufügen (objektorientierte Idee) btBlue.addActionListener(new ColorEventListener(); add(btBlue); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Interne Klasse ColorEventListener implementiert ActionListener { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); dialog = new JDialog(); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }}/** * Java Event Listening Processing – anonyme innere Klassenverarbeitung * * @author codebrother */class EventListener2 erweitert JFrame { private JButton btBlue, btDialog; () { setTitle("Java GUI Event Listening Processing"); 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Pop-up"); // Event-Listener hinzufügen (hier anonyme Klasse) btBlue .addActionListener(new ActionListener() { //Ereignisbehandlung @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } }); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true); add(btBlue); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Autor Codebrother */class EventListener4 erweitert JFrame { private JButton btBlue, btDialog public EventListener4() { setTitle("Java GUI Event Listening and Processing"); setLayout(new FlowLayout()); btDialog = new JButton("Pop-up window" ); // Einen Event-Listener zur Schaltfläche hinzufügen btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener); add(btDialog); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}//Externe Klasse ColorEventListener implementiert ActionListener { private EventListener4 el; ColorEventListener(EventListener4 el) { this.el = el } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane(); c.setBackground(Color.BLUE); Die ActionListener-Schnittstellenklasse DialogEventListener implementiert ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); dialog.setVisible(true); }}public class ActionListenerTest{ public static void main(String args[]) { new EventListener2(); }}