2011-04-28 4 views
2

Java 응용 프로그램의 모든 구성 요소에 대한 포커스를 추적하고 싶습니다. 대부분의 구성 요소에서 작동하는 메서드를 등록했지만 탭을 변경하는 데는 작동하지 않습니다. 코드는 다음과 같습니다.포커스 문제 추적 (JTabbedPane)

FocusManager.getCurrentManager().addPropertyChangeListener(new PropertyChangeListener() { 
    @Override 
    public void propertyChange(PropertyChangeEvent evt) { 
    System.out.println(evt.getPropertyName() + " " + evt.getNewValue()); 
    } 
} 

JTabbedPane에서 탭을 변경하면 메시지가 인쇄되지 않습니다. 이것은 JTabbedPane 포커스가 변경되지 않았기 때문이라고 생각됩니다. 다른 탭을 클릭하면 부모 JTabbedPane에 속할 수 있습니다.

해결 방법이 있습니까? 또는 변경된 탭에서도 작동하는 Java의 포커스 변경을 추적하는 저장 방법을 아는 사람이 있습니까?

건배, 최대

답변

1

당신은 탭의 변화를 들으려면 탭 구획에 ChangeListener를 추가 할 수 있습니다.

+0

나는 모든 구성 요소에 대해보다 일반적인 것을 찾고있었습니다. – Max

+0

탭은 구성 요소가 아니므로 들어야하는 포커스가 변경되지 않습니다. JTable의 각 셀과 같은 것은 컴포넌트가 아닙니다. 이 구성 요소는 Action을 사용하여 구성 요소를 탐색합니다. – camickr