Varias formas de agregar eventos en Java (reimpreso del artículo de Codebrother con ligeros cambios):
/** * Procesamiento de escucha de eventos Java: su propia clase implementa la interfaz ActionListener como un detector de eventos* * @author codebrother */class EventListener1 extiende JFrame implementa ActionListener { private JButton btBlue, btDialog public EventListener1() { setTitle("Java GUI; Procesamiento de escucha de eventos"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Agregar detector de eventos al botón btBlue.addActionListener(this); btBlue); agregar(btDialog); setVisible(verdadero); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE } // ****************************Manejo de eventos***********; ******* **************** @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btBlue) { Contenedor c = getContentPane( ); c.setBackground(Color .BLUE); si (e.getSource() == btDialog) { JDialog dialog = new JDialog(); dialog.setBounds(300, 200, 400, 300); dialog.setVisible(true); clase EventListener3 extiende JFrame { JButton privado btBlue, btDialog // Constructor público EventListener3() { setTitle("Escucha y procesamiento de eventos de GUI de Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); window"); // Agregar objeto de escucha de eventos (idea orientada a objetos) btBlue.addActionListener(new ColorEventListener()); btDialog.addActionListener(new DialogEventListener()); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); implementa ActionListener { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } } // Clase interna DialogEventListener, implementa la interfaz ActionListener clase DialogEventListener implementa ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog diálogo = nuevo JDialog(); diálogo.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }}/** * Procesamiento de escucha de eventos Java: procesamiento de clase interno anónimo * * @author codebrother */class EventListener2 extiende JFrame { private JButton btBlue, btDialog public EventListener2; () { setTitle("Procesamiento de escucha de eventos de la GUI de Java"); 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Agregar detector de eventos (clase anónima aquí) btBlue .addActionListener(new ActionListener() { // Manejo de eventos @Override public void actionPerformed(ActionEvent e) { Contenedor c = getContentPane(); c.setBackground(Color.BLUE); } }); // Y agrega el detector de eventos btDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); diálogo.setBounds(300, 200, 400, 300); dialog.setVisible(true); } }); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); autor codebrother */class EventListener4 extiende JFrame { JButton privado btBlue, btDialog público EventListener4() { setTitle("Escucha y procesamiento de eventos de GUI de Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); window" ); // Agrega un detector de eventos al botón btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener()); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Clase externa ColorEventListener, implementa la interfaz ActionListener ColorEventListener implementa ActionListener {privado); EventListener4 el; ColorEventListener(EventListener4 el) { this.el = el } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane(); c.setBackground(Color.BLUE);//Clase externa DialogEventListener, implementación; La clase de interfaz ActionListener DialogEventListener implementa 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[]) { nuevo EventListener2(); }}