SwingEventMonitor

SwingEventMonitor (Swing 이벤트 모니터)

AWTEventMonitor를 확장해, 자바 가상 머신 안의 모든 Swing 컴포넌트 인스턴스에 조건부로 설치되는 리스너들을 추가한 클래스입니다. AWT와 Swing 컴포넌트의 개별 이벤트를 카테고리별 리스너 한 세트로 모아줘요.

출처: Java API Reference

본문

SwingEventMonitorAWTEventMonitor를 상속하면서, JVM 안의 모든 Swing 컴포넌트 인스턴스에 조건부로 설치되는 리스너 묶음을 추가합니다. 이 리스너들이 잡아낸 이벤트는 SwingEventMonitor가 지원하는 통합된 리스너 세트를 통해 이용할 수 있어요.

이 방식 덕분에 각 AWT·Swing 컴포넌트 인스턴스에서 발생하는 개별 이벤트들이 모두 하나의 리스너 세트로 흘러들어가고, EventID가 정의한 카테고리로 나뉩니다.

public class SwingEventMonitor extends AWTEventMonitor

이 클래스는 최상위 컨테이너가 생성될 때 이를 포착하는 기반 지원을 제공하는 EventQueueMonitor에 의존합니다. 그리고 AWTEventMonitor를 상속하므로, 이 클래스와 AWTEventMonitor를 동시에 쓸 필요가 없어요. AWT와 Swing 컴포넌트를 모두 모니터링하고 싶다면 이 클래스만 사용하면 됩니다.

리스너 등록 메서드들 (정적)

이 클래스의 리스너 등록 메서드는 모두 static이며, JVM 안의 각 컴포넌트 인스턴스에서 발생하는 이벤트를 한꺼번에 받습니다.

public static void addAncestorListener(AncestorListener l)          // ANCESTOR 이벤트
public static void addCaretListener(CaretListener l)                // CARET 이벤트
public static void addCellEditorListener(CellEditorListener l)      // CELLEDITOR 이벤트
public static void addChangeListener(ChangeListener l)              // CHANGE 이벤트
public static void addColumnModelListener(TableColumnModelListener l) // COLUMNMODEL
public static void addDocumentListener(DocumentListener l)          // DOCUMENT 이벤트
public static void addInternalFrameListener(InternalFrameListener l)   // INTERNALFRAME
public static void addListDataListener(ListDataListener l)          // LISTDATA 이벤트
public static void addListSelectionListener(ListSelectionListener l)   // LISTSELECTION
public static void addMenuListener(MenuListener l)                  // MENU 이벤트
public static void addPopupMenuListener(PopupMenuListener l)        // POPUPMENU 이벤트
public static void addPropertyChangeListener(PropertyChangeListener l) // PROPERTYCHANGE
public static void addTableModelListener(TableModelListener l)      // TABLEMODEL 이벤트
public static void addTreeExpansionListener(TreeExpansionListener l)   // TREEEXPANSION
public static void addVetoableChangeListener(VetoableChangeListener l)  // VETOABLECHANGE

이 메서드들이 받는 리스너는 JVM 안의 모든 컴포넌트 인스턴스에서 해당 카테고리 이벤트가 발생할 때마다 호출됩니다. 등록된 리스너는 각 메서드에 대응하는 removeXxxListener 메서드로 제거할 수 있어요 (예: removePropertyChangeListener, removeVetoableChangeListener).

listenerList 필드

protected static final EventListenerList listenerList

다른 클래스가 등록한 모든 리스너를 모아두는 마스터 리스트입니다.

이 클래스는 자바 접근성(accessibility) 패키지에 속하며, 화면 읽기 도구 같은 보조 기술이 Swing 컴포넌트의 이벤트를 통합적으로 관찰할 수 있게 도와주는 역할을 합니다.

더 알아보기 (Learn more)

Java 공식 API