0

我正在用 Java 创建一个音译工具。它几乎完成了。这是屏幕截图。

在此处输入图像描述

我正在使用JWindow下拉菜单,由于某种原因它必须是可聚焦的。因为,用户一次只能写入一个输入。我已经创建了这个window静态,所以所有 Text 组件都使用相同的实例而不是创建新的实例。

当我在多个窗口中工作时,就会出现问题。除非两个窗口都显示在屏幕上,否则它工作正常。但是当这个下拉窗口的所有者窗口关闭时,下拉窗口不再是可聚焦的。

正如JWindow(Window owner)构造函数的 Javadoc 所说:

创建具有指定所有者窗口的窗口。除非其所有者显示在屏幕上,否则此窗口将无法聚焦。如果所有者为空,则将使用共享所有者,并且此窗口将不可聚焦。

那么,如何创建一个静态的、可聚焦的窗口,由不同窗口中的所有组件共享。

4

1 回答 1

2

不要使用 JWindow。

相反,您可以使用未修饰的 JDialog。那么你就不会有焦点问题了。

编辑:

当您使用以下代码使其可见时,您可以防止对话框最初获得焦点:

dialog.setWindowFocusableState(false);
dialog.setVisible(true);
dialog.setWindowFocusableState(true);
于 2015-04-01T03:30:20.457 回答