如何在Java中创建一个通用的静态可聚焦窗口?

时间:2015-04-01 03:26:11

标签: java swing user-interface transliteration jwindow

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

enter image description here

我正在使用JWindow进行下拉,因某种原因必须可以关注。 因为,用户只能一次写入一个输入。我已创建此window静态,因此所有Text组件都使用相同的实例,而不是创建新实例。

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

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

  

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

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

1 个答案:

答案 0 :(得分:2)

不要使用JWindow。

相反,您可以使用非装饰的JDialog。然后你就不会有焦点问题。

编辑:

使用以下代码可以阻止对话框初始获得焦点:

dialog.setWindowFocusableState(false);
dialog.setVisible(true);
dialog.setWindowFocusableState(true);