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.addActionListener(this); btBlue); 추가(btDialog); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) } // ***************************이벤트 처리************ ******* **************** @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btBlue) { 컨테이너 c = getContentPane( ); c.setBackground(Color .BLUE) } else if (e.getSource() == btDialog) { JDialogDialog = new JDialog();Dialog.setBounds(300,200,400,300);dialog.setVisible(true); } }}/** * Java 이벤트 수신 처리 - 내부 클래스 처리 * * @author codebrother * / 클래스 EventListener3 확장 JFrame { private JButton btBlue, btDialog // 생성자 public EventListener3() { setTitle("Java GUI 이벤트 수신 및 처리"); setBounds(100, 100, 500, 350); btBlue = new JButton("Blue"); window" ); // 이벤트 리스너 객체 추가(객체 지향 아이디어) btBlue.addActionListener(new ColorEventListener()); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) } // ActionListener 인터페이스 구현 ActionListener를 구현합니다. { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE); } } // ActionListener 인터페이스를 구현하는 내부 클래스 DialogEventListener는 ActionListener를 구현합니다. { @Override public void actionPerformed(ActionEvent e) { JDialog 대화 상자 = 새로운 JDialog(); 대화 상자.setBounds(300, 200, 400, 300);Dialog.setVisible(true); } }}/** * Java 이벤트 수신 처리 - 익명 내부 클래스 처리 * * @author codebrother */class EventListener2는 JFrame { private JButton btBlue, btDialog; () { setTitle("Java GUI 이벤트 수신 처리") setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // 이벤트 리스너 추가(여기서는 익명 클래스) btBlue .addActionListener(new ActionListener() { //이벤트 처리 @Override public void actionPerformed(ActionEvent e) { 컨테이너 c = getContentPane(); c.setBackground(Color.BLUE); } }); // 이벤트 리스너를 추가합니다. btDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialogDialog = new JDialog(); 대화상자.setBounds(300, 200, 400, 300); Dialog.setVisible(true); } }); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) }}/** * Java 이벤트 처리* * @ 작성자 코드 브라더 */class EventListener4는 JFrame { private JButton btBlue, btDialog public EventListener4() { setTitle("Java GUI 이벤트 수신 및 처리"); setBounds(100, 100, 500, 350); btBlue = new JButton("Blue"); window" ); // 버튼에 이벤트 리스너를 추가합니다 btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) }}//External class ColorEventListener는 ActionListener를 구현합니다. EventListener4 el; ColorEventListener(EventListener4 el) { this.el = el; } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane() c.setBackground(Color.BLUE) }}//External class DialogEventListener, 구현 ActionListener 인터페이스 클래스 DialogEventListener는 ActionListener { @Override public void를 구현합니다. actionPerformed(ActionEvent e) { JDialog 대화상자 = new JDialog();dialog.setBounds(300, 200, 400, 300);dialog.setVisible(true) }}public class ActionListenerTest{ public static void main(String args[]) { 새로운 EventListener2() }}