当我在对象上使用setSelectedComponent
或时,面板总是出现在我的 UI 中。但是,有时与面板关联的选项卡仍然隐藏。换言之,选项卡不会滚动到选项卡式窗格的可见部分。setSelectedIndex
JTabbedPane
我怎样才能解决这个问题?我已经尝试过俗气的选择一个索引,然后选择所需的索引,以及其他几个更优雅的东西,但是 arrrrgh !
如果可以的话,请帮助我。
谢谢,托德
当我在对象上使用setSelectedComponent
或时,面板总是出现在我的 UI 中。但是,有时与面板关联的选项卡仍然隐藏。换言之,选项卡不会滚动到选项卡式窗格的可见部分。setSelectedIndex
JTabbedPane
我怎样才能解决这个问题?我已经尝试过俗气的选择一个索引,然后选择所需的索引,以及其他几个更优雅的东西,但是 arrrrgh !
如果可以的话,请帮助我。
谢谢,托德
我认为您的电话不是在 EDT 上完成的。用它包裹起来SwingUtilities.invokeLater
如果您有一个更改摆动组件或其模型的方法,则可以使用以下模式,因此必须在 EDT 上调用,但可以从后台线程调用。这确保func 始终在 EDT 上运行:
void func(final Type1 arg1, final Type2 arg2) {
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
func(arg1, arg2);
}
});
return;
}
// method code goes here
}