Plusieurs façons d'ajouter des événements en Java (réimprimé de l'article de codebrother avec de légères modifications) :
/** * Traitement d'écoute d'événements Java - sa propre classe implémente l'interface ActionListener en tant qu'écouteur d'événements* * @author codebrother */class EventListener1 extends JFrame Implements ActionListener { private JButton btBlue, btDialog; public EventListener1() { setTitle("Java GUI Traitement d'écoute d'événements"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Ajouter un écouteur d'événement au bouton btBlue.addActionListener(this); btBlue); ajouter(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } // ***************************Gestion des événements*********** ******* **************** @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btBlue) { Conteneur c = getContentPane( ); c.setBackground(Color .BLUE); } else if (e.getSource() == btDialog) { JDialog dialog = new JDialog(); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }}/** * Traitement d'écoute d'événements Java - traitement de classe interne * * @author codebrother * / class EventListener3 extends JFrame { private JButton btBlue, btDialog; // Constructeur public EventListener3() { setTitle("Écoute et traitement des événements de l'interface graphique Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); window" ); // Ajout d'un objet écouteur d'événement (idée orientée objet) btBlue.addActionListener(new ColorEventListener()); btDialog.addActionListener(new DialogEventListener()); add(btBlue); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } // Classe interne ColorEventListener, implémente la classe d'interface ActionListener. implémente ActionListener { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } } // Classe interne DialogEventListener, implémente la classe d'interface ActionListener DialogEventListener implémente ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog dialogue = nouveau JDialog(); dialogue.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }}/** * Traitement d'écoute d'événements Java - traitement de classe interne anonyme * * @author codebrother */class EventListener2 extends JFrame { private JButton btBlue, btDialog; () { setTitle("Traitement d'écoute des événements de l'interface graphique Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Ajouter un écouteur d'événement (classe anonyme ici) btBlue .addActionListener(new ActionListener() { //Gestion des événements @Override public void actionPerformed(ActionEvent e) { Conteneur c = getContentPane(); c.setBackground(Color.BLUE); } }); // Et ajouter un écouteur d'événement btDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialog dialog = new JDialog() ; dialogue.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); auteur codebrother */class EventListener4 extends JFrame { private JButton btBlue, btDialog; public EventListener4() { setTitle("Écoute et traitement des événements de l'interface graphique Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); window" ); // Ajout d'un écouteur d'événement au bouton btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener()); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Classe externe ColorEventListener, implémente la classe d'interface ActionListener ColorEventListener implémente ActionListener {privé EventListener4 el ; ColorEventListener(EventListener4 el) { this.el = el; } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane(); c.setBackground(Color.BLUE }}//Classe externe DialogEventListener, implémentation La classe d'interface ActionListener DialogEventListener implémente ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true }}public class ActionListenerTest{ public static void main(String args[]) { new EventListener2();