如何检测用户何时在JTabbedPane中留下某个选项卡

时间:2016-08-23 13:08:26

标签: java jtabbedpane

我知道如何编写一个ChangeListener来记录JTabbedPane中新选择的选项卡的索引,但我想要的是检测用户何时离开某个选项卡。我有7个标签,当用户离开标签号6时,我想运行一些代码。我该如何实现?

2 个答案:

答案 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());
相关问题