1

当我在对象上使用setSelectedComponent或时,面板总是出现在我的 UI 中。但是,有时与面板关联的选项卡仍然隐藏。换言之,选项卡不会滚动到选项卡式窗格的可见部分。setSelectedIndexJTabbedPane

我怎样才能解决这个问题?我已经尝试过俗气的选择一个索引,然后选择所需的索引,以及其他几个更优雅的东西,但是 arrrrgh !

如果可以的话,请帮助我。

谢谢,托德

4

2 回答 2

2

我认为您的电话不是在 EDT 上完成的。用它包裹起来SwingUtilities.invokeLater

于 2009-08-05T21:21:17.107 回答
1

如果您有一个更改摆动组件或其模型的方法,则可以使用以下模式,因此必须在 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
}
于 2009-08-06T18:53:12.783 回答