jTabbedPane在加载时打开不同的选项卡

时间:2010-03-02 17:43:53

标签: java netbeans jtabbedpane

首先,我使用netbeans作为我的IDE,我不知道这是否导致它。当我运行我的程序时(即使我已经构建它并运行.jar)我认为它选择了之前选择的选项卡(退出之前)。因此,例如,如果我选择第三个选项卡关闭应用程序,它将再次启动。有没有一个已知的解决方案? jTabbedPane上的selectedIndex属性设置为0.此属性不应该是默认的onLoad值吗?

提前谢谢,吉米

PS。 BTW由于某种原因它没有在Opera中提交我的问题(?)

6 个答案:

答案 0 :(得分:4)

tabbedPaneName.setSelectedIndex(0);

只需将该行放在将加载选项卡式窗格的位置 如果按钮启动将加载标签窗格然后将线放在那里 但是将tabbedPaneName更改为您的选项卡式窗格名称。

答案 1 :(得分:0)

如果Java代码包含:

,则可以将其设置为非零的索引的唯一方法
tabbedPane.setSelectedIndex(...);

所以搜索该行的源代码并修复它。

答案 2 :(得分:0)

除了使用JTabbedPane.setSelectedIndex()之外,还可以通过调用JTabbedPane.setSelectedComponent()来选择标签。您是否也搜索了setSelectedComponent()的代码?

答案 3 :(得分:0)

与Netbeans 6.8和JTabbedPane相同的问题。 setSelectedIndex() setSelectedComponent()都没有区别。 getSelectedIndex()返回先前设置的值,但未正确选择窗格。

原因是 SingleFrameApplication 保存状态并在下次重启时恢复保存状态。这是在GUI构建器生成的代码中完成的。 您可以看到SingleFrameApplication的 startup() configureWindow()方法被覆盖。

解决方法:

  1. 您也可以覆盖 shutdown()方法,然后不会保存对配置的修改。请注意,原始文件仍将恢复,因此请确保保存所需的配置。

  2. 修改 startup()方法也有帮助:

  3. MyView myView = new MyView(this);
    myView.getFrame().setVisible(true);
    myView.getFrame().pack();
    

答案 4 :(得分:0)

我遇到了同样的问题,并找到了一个简单的解决方法。 在netbean的GUI-builder中,我将tabbedpane设置为未启用。后来在我的程序中,我检查了它是否未启用,在那种情况下称为MyTabbedPane.setEnabled(true);和MyTabbedPane.setSelectedIndex(0);

答案 5 :(得分:0)

同样的问题。不得不回到NetBeans 7.0.1更新JSR 296应用程序而Java 7以不同于以前版本的方式运行它,因此创建的最后一个选项卡始终是具有焦点的选项卡。无法在构造函数中获取任何更改内容,但最终发现只是在对setSelectedIndex()的调用中包含相同的调用(invokeLater())解决了它。

    SwingUtilities.invokeLater(
      new Runnable() {
        public void run() {
          tabMain.setSelectedIndex(0);
        }
      }
    );