사용자가 특정 탭을 남겨 두었다는 것이 가능한지 궁금합니다. 예를 들어, "omg"및 "lol"탭이 있습니다. 현재 탭은 omg입니다. 사용자가 "omg"에서 "lol"로 전환되었음을 알고 싶습니다.JTabbedPane 사용자가 탭을 남겼는지 확인하는 방법은 무엇입니까?
3
A
답변
4
변경 청취자를 JTabbedPane
에 추가하면 탭 선택이 변경 될 때 알 수 있습니다.
업데이트 : 추가 된 탭 인덱스는 내가이 사용 된 소스를 가지고 있지 않지만, 내가 무슨 짓을했는지 확신
tabbedPane.getModel().addChangeListener(new ChangeListener() {
int lastTabIndex = -1;
public void stateChanged(ChangeEvent e) {
int newIndex = tabbedPane.getSelectedIndex();
if (lastTabIndex == 1 && newIndex == 2) { //or whatever check/combination of checks you would like
//switched from tab 1 to tab 2!
}
//or just check for leaving tab 1
if (lastTabIndex == 1) {
//left tab 1!
}
//etc
lastTabIndex = newIndex;
}
});
2
을 추적했다 JTabbedPane에 확장 및 setSelectedIndex (int)를 우선합니다. 인덱스가 지정된 숫자로 변경 될 때 호출되며, 왼쪽에있는 창에서 내용을 확인하는 데 사용됩니다. 논리가 super.setSelectedIndex (int)를 실행하지 않으면 패널을 닫지 않습니다 (이는 내가 수행 한 것입니다).
@Hovercraft가 말했듯이 JTabbedPane에서 바로 똑같은 것을 말합니다. –
. 중복 된 답변을 삭제합니다. 1 + –
네,이 청취자에 대해 알고 있습니다. 그리고 나는 아직도 선택되지 않은 왼쪽 사용자 탭을 어떻게 검색 할 수 있는지 이해하지 못합니다. 정말 이해하기 쉽고 분명하다면 정말 미안하지만, 좀 더 자세한 내용을 말해 줄 수 있습니까? –