Несколько способов добавления событий в Java (перепечатано из статьи codebrother с небольшими изменениями):
/** * Обработка прослушивания событий Java — собственный класс реализует интерфейс ActionListener в качестве прослушивателя событий* * @author codebrother */class EventListener1 расширяет JFrame реализует ActionListener { Private JButton btBlue, btDialog; public EventListener1() { setTitle("Java GUI Обработка прослушивания событий"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Добавляем прослушиватель событий к кнопке btBlue.addActionListener(this); btDialog.addActionListener(this); btBlue; добавить (btDialog); setVisible (истина); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE } // ***************************Обработка событий***********; ******* **************** @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); класс EventListener3 расширяет JFrame {private JButton btBlue, btDialog // Конструктор public EventListener3() { setTitle("Прослушивание и обработка событий графического интерфейса Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); window" ); // Добавляем объект прослушивателя событий (объектно-ориентированная идея) btBlue.addActionListener(new ColorEventListener()); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Внутренний класс ColorEventListener, реализует класс интерфейса ActionListener. реализует ActionListener { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } } // Внутренний класс DialogEventListener, реализует интерфейс ActionListener. Класс DialogEventListener реализует ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog диалог = новый JDialog(); диалог.setBounds(300, 200, 400, 300). () { setTitle("Обработка прослушивания событий графического интерфейса Java"); 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // Добавляем прослушиватель событий (здесь анонимный класс) btBlue .addActionListener(new) ActionListener() { //Обработка событий @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } }); // И добавляем прослушиватель событий btDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialog Dialog = new JDialog() ; диалог.setBounds(300, 200, 400, 300); диалог.setVisible(true); } }); add(btBlue); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE }}/** * Обработка событий Java — обработка внешнего класса* * @); автор codebrother */class EventListener4 расширяет JFrame {private JButton btBlue, btDialog public EventListener4() { setTitle("Прослушивание и обработка событий графического интерфейса Java"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); window" ); // Добавляем прослушиватель событий к кнопке btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}//Внешний класс ColorEventListener, реализует класс интерфейса ActionListener {private EventListener4 эл; ColorEventListener(EventListener4 el) { this.el = el; } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane(); c.setBackground(Color.BLUE }}//Внешний класс DialogEventListener, реализация; Класс интерфейса ActionListener DialogEventListener реализует ActionListener { @Override public void actionPerformed (ActionEvent e) {JDialog диалог = новый JDialog (); setBounds (300, 200, 400, 300); {новый EventListener2() }};