首先,我使用netbeans作为我的IDE,我不知道这是否导致它。当我运行我的程序时(即使我已经构建它并运行.jar)我认为它选择了之前选择的选项卡(退出之前)。因此,例如,如果我选择第三个选项卡关闭应用程序,它将再次启动。有没有一个已知的解决方案? jTabbedPane上的selectedIndex属性设置为0.此属性不应该是默认的onLoad值吗?
提前谢谢,吉米PS。 BTW由于某种原因它没有在Opera中提交我的问题(?)
答案 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()方法被覆盖。
解决方法:
您也可以覆盖 shutdown()方法,然后不会保存对配置的修改。请注意,原始文件仍将恢复,因此请确保保存所需的配置。
修改 startup()方法也有帮助:
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);
}
}
);