我正在用Java创建一个Transliterating工具。它几乎完成了。 这是截图。
我正在使用JWindow
进行下拉,因某种原因必须可以关注。
因为,用户只能一次写入一个输入。我已创建此window
静态,因此所有Text组件都使用相同的实例,而不是创建新实例。
当我在多个窗口中工作时出现问题。它工作正常,除非两个窗口都显示在屏幕上。但是当关闭此下拉窗口的所有者窗口时,下拉窗口不再是可聚焦的。
正如JWindow(Window owner)
构造函数的Javadoc所说:
使用指定的所有者窗口创建一个窗口。除非其所有者在屏幕上显示,否则此窗口将无法对焦。如果owner为null,则将使用共享所有者,并且此窗口将不可聚焦。
那么,如何创建一个静态,可聚焦窗口,该窗口由不同窗口中的所有组件共享。
答案 0 :(得分:2)
不要使用JWindow。
相反,您可以使用非装饰的JDialog。然后你就不会有焦点问题。
编辑:
使用以下代码可以阻止对话框初始获得焦点:
dialog.setWindowFocusableState(false);
dialog.setVisible(true);
dialog.setWindowFocusableState(true);