Almost-Native

자바 버튼 클릭시 ActionPerformed vs MouseClicked 이벤트 차이 본문

Java 프로그램 개발, IT

자바 버튼 클릭시 ActionPerformed vs MouseClicked 이벤트 차이

2020. 7. 1. 08:53

Java Swing 프로그램에서 Button 이벤트 처리할때, 2가지가 있습니다.

 

private void btnButtonMouseClicked(java.awt.event.MouseEvent evt) {
     // TODO add your handling code here:
}

private void btnButtonActionPerformed(java.awt.event.ActionEvent evt) {
     // TODO add your handling code here:
}

 

둘다 "Mouse Click" Event 를 받기 때문에 어느 것을 써도 무방하지만, 약간의 차이가 있습니다.

 

자세히 보면, 매개변수로 넘어오는 변수 evt 의 클래스가 다른 것을 확인할 수 있습니다. (ActionEvent vs MouseEvent)

아래 각 클래스에 포함되어 있는 멤버함수 리스트를 보면, ActionEvent 보다는 MouseEvent 쪽이 압도적으로 많습니다.

 

 

즉, Mouse 의 디테일한 제어를 원하는 경우에는 MouseEvent를 사용하는 것이 좋고,

단순히 Mouse 의 클릭여부(마우스 액션) 정도만을 원할 때는 ActionEvent 를 사용하는 것이 좋습니다.

 

ActionEvent 는 ActionListener 에서 처리하고, MouseEvent 는 MouseListener 에서 처리하는데,

MouseListener 는 마우스의 포인팅 위치좌표(x,y) 같은 좀더 깊이있는 정보를 핸들링할 수 있습니다.

 

 

Comments