我知道如何编写一个ChangeListener来记录JTabbedPane中新选择的选项卡的索引,但我想要的是检测用户何时离开某个选项卡。我有7个标签,当用户离开标签号6时,我想运行一些代码。我该如何实现?
答案 0 :(得分:0)
尝试使用焦点状态。您可以使用component.hasFocus()
或getSelectedIndex
方法查看。这取决于您的组件的可访问方式或TabbedPane的实现方式
答案 1 :(得分:0)
我在这里找到了解决方案: Java JTabbedPane - Action immediately before changing the selected Tab。 我所要做的就是创建一个扩展DefaultSingleSelectionModel的新类。该类重写setSelectedIndex()方法。
public class MySingleSelectionModel extends DefaultSingleSelectionModel {
@Override
public void setSelectedIndex(int index) {
if (getSelectedIndex() == 6) {
//perform action here
}
super.setSelectedIndex(index);
}
}
最后,我在JTabbedPanel中设置了模型:
myTabbedPane.setModel(new MySingleSelectionModel());