如何防止重定向到JTabbedPane中的选定选项卡?

时间:2012-12-28 07:19:06

标签: java swing jtabbedpane jcheckbox

我在java swing中创建了一个应用程序 该应用程序是JFrameJTabbedPane有3个tabbedpane。

在第一个窗格中有一个进度复选框,如果选中该复选框,则点击另一个窗格时,第二个或第三个窗格将显示“{1}}消息,显示”正在进行选项卡1“。

问题是当我选中进度复选框时单击其他窗格时,它将首先进入我选择的窗格,然后只有重定向工作,并且错误消息执行两次。

我已经以某种方式阻止了两次错误消息的执行,但是当单击进度复选框时无法阻止转到单击窗格。

任何人都可以告诉我这个问题的解决方案。

我的完整代码如下。

ERROR

2 个答案:

答案 0 :(得分:2)

这是因为您使用tabStateChanged事件,因此仅在更改选项卡时才会触发事件,因此您可以将事件类型更改为单击或更改代码,以便它不会首先显示错误,但是首先更改选定的选项卡,然后显示错误框

int o=getStatus();
       if(o==1 && tab.getSelectedIndex() != 0) //if the selected index isn't 0 and the o == 1
       {
            tab.setSelectedIndex(0);
            JOptionPane.showMessageDialog(null, "Tabbed 1 Progress!!!", "Confirmation!!!",JOptionPane.ERROR_MESSAGE);
            //setStatus(0); delete this
            //setStatus(1); delete this
       }

答案 1 :(得分:2)

你不能使用JTabbedPane的方法吗?

public void setEnabledAt(int index, boolean enabled)

开始进度以防止点击禁用标签