ActionEvent : 버튼이 클릭되거나 아이템을 선택한 경우 이벤트 리스너 : ActionListener AdjustmentEvent : 스크롤바를 조정한 경우 이벤트 리스너 : AdjustmentListener ItemEvent : 리스트 객체로부터 항목을 선택한 경우 이벤트 리스너 : ItemListener TextEvent : 텍스트 필드의 값이 변경된 경우 이벤트 리스너 : TextListener
저급레벨 이벤트
ComponentEvent : 컴포넌트 크기를 변경, 이동, 보이기, 숨기기한 경우 이벤트 리스너 : ComponentListener KeyEvent : 키를 누르거나 띈 경우 이벤트 리스너 : KeyListener MouseEvent : 마우스버튼이 눌리거나 띈 경우, 마우스를 움직이거나 드래그한 경우 이벤트 리스너 : MouseListener, MouseMotionListener 마우스가 x,y 좌표에서 움직이면서 키보드와 같이 작동하는 버튼을 가지고 있기 때문에. FocusEvent : 컴포넌트의 포커스를 얻거나 잃은 경우 이벤트 리스너 : FocusListener WindowEvent : 화면이 아이콘화 되거나 활성화, 비활성화, 기타 등등의 경우 이벤트 리스너 : WindowListener ContainerEvent : 컴포넌트가 컨테이너에 추가되거나 제거된 경우 이벤트 리스너 : ContainerListener PaintEvent : 리스너를 가지고 사용되지 않고 재정의될 수 있는 메소드를 포함 이벤트 리스너 : PaintListener InputEvent : 주로 Component 이벤트가 던져지지 않는 컴포넌트를 얻기 전에 이벤트를 가로채도록 사용 이벤트 리스너 : InputListener
인터페이스들은 많게는 7개에서 1개의 메소드와 관련이 있다. 여러개의 메소드를 갖고있는 리스너는 어댑터 클래스라는 특별한 클래스를 갖는다. 사용자를 위해 인터페이스를 구현하고 더미 메소드를 지공한다. ->인터페이스를 구형하기 위해 이 클래스들을 확장하고 메소드를 재정의 한다. 모든 메소드를 구현하지 않아도 어댑터 클래스가 이미 구현해 놓았기 때문에 에러는 발생하지 않는다.
public class EventConsumer implements ActionListener { JButton btnBook; JButton btnExit;
public EventConsumer() throws Exception {} //생성자 메소드
public void actionPerformed(java.awt.event.ActionEvent ae) { if(ae.getActionCommand().equals("Exit")) { System.out.println("Exit was clicked"); }
if(ae.getActionCommand().equals("Book")) { //티켓 예약 System.out.println("Book was clicked"); } } }
= 버튼을 클릭하면 JButton코드는 ActionEvent객체를 생성한다. 그리고 컴포넌트를 위한 리스너가 누군지 알아내기 위해 리스너 목록을 본다. 리스트의 리스너 중 JButton은 ActionEvent인터페이스를 구현한 리스너를 선택한다. 그리고 리스너의 actionPerformed()메소드 중에 하나를 호출한다.
이벤트리스닝을 변경하는 방법 - 그 자신이 이벤트 리스너인 단일 클래스를 만든다. - 스스로 리스너 인터페이스를 구현하는 클래스를 만든다. - 그 자신이 이벤트 처리 클래스라는 표시로 this매개변수를 전달하여 addActionListener()를 호출한다.