자바 이벤트 리스너 예제

위의 코드에서 MultiListener 및 Eavesdropper는 ActionListener 인터페이스를 구현하고 JButton addActionListener 메서드를 사용하여 작업 리스너로 등록합니다. 두 클래스의 action수행 메서드 구현은 비슷합니다: 이벤트의 작업 명령을 텍스트 영역에 추가하기만 하면 됩니다. 각 이벤트 유형에 대해 해당 수신기 인터페이스는 해당 이벤트를 수신하기 위해 제공해야 하는 메서드를 규정합니다. 이 경우 ActionEvents를 수신하는 모든 개체는 ActionListener 인터페이스를 구현해야 합니다: [39] 이 규칙은 완전하지 않습니다. JavaBeans 규칙(22장 참조)을 사용하면 이벤트 처리기 메서드가 필요한 경우 추가 인수를 취하고 확인된 예외를 throw할 수 있습니다. 특정 종류의 이벤트를 처리하기 위한 두 개 이상의 수신기 인터페이스가 있을 수 있습니다. 예를 들어 MouseListener 인터페이스는 마우스가 영역으로 들어가거나 나가거나 마우스 단추를 누르거나 해제할 때 MouseEvents를 수신하는 방법을 설명합니다. MouseMotionListener는 마우스를 이동하거나 드래그(단추 누른 버튼 없음) 마우스 이벤트를 얻는 방법을 설명하는 완전히 별도의 인터페이스입니다. Java에서는 마우스 이벤트를 이 두 범주로 분리하여 MouseEvents를 수신하려는 상황에 대해 좀 더 선택적으로 선택할 수 있습니다.

마우스 모션 이벤트를 수신하지 않고 마우스 이벤트에 대한 리스너로 등록할 수 있습니다. 마우스 모션 이벤트는 매우 일반적이기 때문에 필요하지 않은 경우 마우스 모션 이벤트를 처리하고 싶지 않습니다. 리커와 구성 요소를 등록하기 위해 많은 클래스에서 등록 방법을 제공합니다. 예를 들어 마우스 휠 이벤트를 명시적으로 처리하려는 경우 다음 섹션의 표 16-1에 표시된 MouseWheelListener 인터페이스를 사용하여 이벤트를 수신하도록 등록할 수 있습니다. 마우스 휠 이벤트는 스크롤 양과 스크롤 장치의 유형에 대한 정보를 캡슐화하며, 대부분의 시스템에서 는 세밀한 스크롤 장치 또는 큰 블록으로 외부적으로 구성될 수 있습니다. 휠이 회전된 거리를 물리적으로 측정하려는 경우 여러 번의 클릭을 반환하는 getWheelRotation() 메서드를 사용하여 휠을 얻을 수 있습니다. FooListener 인터페이스에 대 한 FooEvent 이벤트의 소스 추가/제거 메서드 쌍을 구현 해야 합니다. 수신기는 이벤트 유형을 수신할 수 있도록 규정된 이벤트 처리 메서드를 구현합니다. 그런 다음 이러한 종류의 이벤트의 소스에 자신을 등록합니다. 경우에 따라 어댑터 개체가 이벤트 소스와 수신기 간에 삽입될 수 있지만 어떤 경우에도 이벤트가 전달되기 전에 항상 수신기 등록이 설정됩니다.

Ο ΚΑΙΡΟΣ
facebook
facebook
ΑΡΙΘΜΟΣ ΕΠΕΣΚΕΠΤΩΝ
  • 0Total visitors:
  • Visitors today:
  • Visitors yesterday:
  • Visitors last week:
  • Visitors per month:
  • 0.00Visitors per day:
  • 0Visitors currently online: