如何在没有alwaysOnTop()或setModal(true)的情况下将JDialog保持在另一个JFrame的顶部?

时间:2018-08-20 17:21:47

标签: java modal-dialog keyboard-events jdialog always-on-top

我需要在程序中的主JFrame上方始终有一个弹出JDialog。当用户打开弹出窗口时,它需要留在前台,直到使用完毕。不幸的是,有两件事阻碍了此工作的轻松实现。

我不想调用alwaysOnTop()。如果这样做,即使用户单击我的程序,弹出窗口也始终保持在前台,这显然是不可取的。

此外,我无法在JDialog上调用setModal(true),因为需要向其添加KeyListener。将JDialog设置为模式对话框会导致它在键盘输入到达我添加的侦听器之前捕获键盘输入。

是否缺少使JDialog或JFrame始终直接位于另一个之上的功能,或者即使将JDialog设置为模态,也有办法捕获键盘输入吗?预先感谢您的帮助。

0 个答案:

没有答案