JTabbedPane如何确定用户离开标签?

时间:2012-05-06 12:03:39

标签: java swing user-interface jtabbedpane

我想知道,如果可以确定,那个用户就会离开某个标签。例如,我们有两个标签:“omg”和“lol”。当前选项卡是omg。我想知道用户从“omg”切换到“lol”

2 个答案:

答案 0 :(得分: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;
    }
});

答案 1 :(得分:2)

我没有用于此的源代码,但我很确定我所做的是扩展JTabbedPane并覆盖setSelectedIndex(int)。当索引GOING要更改为指定的数字时调用它,并且我用它来验证将要离开的窗格上的内容。如果你的逻辑没有执行super.setSelectedIndex(int),那么你就不会离开窗格(这就是我所追求的)。