Java practice_240129

Choi Suyeon·2024년 1월 30일
0

Event Handling

사용자의 동작이 있을 때, 그에 대한 대비코드를 준비해두고 실행하는 것.
event는 java.awt.event와 javax.swing.event 패키지에서 제공하는 클래스를 사용.
swing에서 java의 event를 사용할 수 있다.

문법

  1. 발생하는 이벤트를 처리할 수 있는 XXXListener를 구현.

  2. 컴포넌트에서 이벤트에 등록하는 method를 호출
    컴포넌트명.addXXXListener(이벤트가 발생했을 때 처리할 객체)

  1. XXXListener에 존재하는 abstract method를 override한다.
    override한 method에서 이벤트가 발생했을 때 사용자에게 제공할 코드를 기술.(이벤트가 발생했을 때 처리할 코드를 기술.)

흐름

java TestActionEvent

jbtn.addActionListener(this)
컴포넌트를 이벤트에 등록하고 버튼이 눌리기를 기다림.
1. 사용자가 버튼을 클릭.
2. JVM이 이벤트객체에 등록된 컴포넌트인지 판단.
3. 등록된 버튼이 아니면 무시, 등록된 버튼이면, event객체를 생성하고 override된 method를 호출, 생성된 이벤트 객체를 arguments로 할당.

버튼이면 ActionEvent객체가 생성되고, Override한 actionPerformed()를 호출하여 매개변수로 ActionEvent객체를 입력해준다.


* 이벤트코딩 순서

1. 이벤트를 처리할 수 있는 XXXListener를 구현
public class Test extends JFrame implements ActionListener{

2. 이벤트 처리와 관련잇는 컴포넌트를 인스턴스 변수로 선언.
	private JButton jbtn;
    //actionPerformed에서 비교해야할 컴포넌트를 선언

3. 생성자에서 컴포넌트를 생성
	public Test(){
		jbtn = new JButton();
        
        4. 이벤트에 등록
        jbtn.addActionListener(this);
        
        5. 배치작업
        6. 가시화
        7. 종료이벤트처리
	}//Test
    
    @Override
    public void actionPerformed(ActionEvent ae){
    	8. 이벤트가 발생(버튼누름)했을 때 사용자에게 제공할(보여줄) 코드
        
    }//actionPerformed
}//class

윈도우 종료

WindowListener 인터페이스를 구현하여 windowClosing()안에서 종료 처리 코드(Frame에서 제공하는 dispose()) 호출한다.

xxxAdapter 클래스

이벤트를 처리하기 위해 구현된 xxxListener가 abstract method를 하나 이상 가지고 있을 때, 구현 클래스에서 편하게 사용하도록 xxxListener를 미리 구현해둔 클래스.

  • abstract class : 직접 객체화되지 않고, 자식클래스에 의해서 객체화된다.
  • 자식 클래스에서는 필요한 method만 override해서 사용한다.

0개의 댓글