새로 선택한 탭의 인덱스를 JTabbedPane에 기록하는 ChangeListener를 작성하는 방법을 알고 있지만 사용자가 특정 탭을 벗어날 때이를 감지하는 것이 좋습니다. . 나는 7 개의 탭이 있으며 사용자가 탭 번호 6을 떠날 때 코드를 실행하고 싶습니다. 어떻게 수행 할 수 있습니까?사용자가 JTabbedPane에 특정 탭을 남겨 둘 때 감지하는 방법
0
A
답변
0
초점 상태를 사용해보십시오. component.hasFocus()
또는 getSelectedIndex
메소드로 확인할 수 있습니다. 이는 구성 요소에 액세스 할 수있는 방법 또는 TabbedPane 구현 방법에 따라 다릅니다.
0
여기 해결책을 찾았습니다 : Java JTabbedPane - Action immediately before changing the selected Tab. 내가해야 할 일은 DefaultSingleSelectionModel을 확장 한 새로운 클래스를 만드는 것입니다. 이 클래스는 setSelectedIndex() 메서드를 재정의합니다.
myTabbedPane.setModel(new MySingleSelectionModel());
:
public class MySingleSelectionModel extends DefaultSingleSelectionModel {
@Override
public void setSelectedIndex(int index) {
if (getSelectedIndex() == 6) {
//perform action here
}
super.setSelectedIndex(index);
}
}
마지막으로, 나는 JTabbedPanel에서 모델을 설정