我有一个应用程序运行在全屏模式,并一直工作良好。现在我需要添加一个简单的,未修饰的对话框,我遇到了麻烦。如果我运行应用程序最大化了,但没有在全屏上运行,对话框将显示并按预期运行。当我切换回全屏时,对话框将不会显示。
该对话框扩展了JDialog,并且只包含一个JSlider和几个按钮。它是未装饰和非模态。(为了测试目的,我禁用了模式--每次对话框阻塞输入时,强制退出应用程序都是一种痛苦。)我使用setFullScreenWindow()进入全屏模式,传入应用程序的主JFrame。如果我将这个非常JFrame设置为JDialog的所有者,那就没有什么区别了。如果我在对话框上调用toFront(),似乎也没有帮助。
这个对话框看起来很活跃--特别是因为如果我把它变成模式的话,它会阻塞输入--只是没有显示或隐藏而已。那么,在全屏模式下显示JDialog有什么明显的窍门吗?可能忽略或忽略了什么吗?
如果没有明显的解决方案,我可以稍后发布一些代码。不幸的是,我现在没有时间。
发布于 2009-11-13 21:38:03
事实上,正如M1EK在他的回答中提到的,我在评论中提到,在全屏模式下的Java应用程序将不允许其他窗口显示在它们上面。用于GraphicsDevice的Javadoc的内容如下:
窗口不能重叠全屏窗口.所有其他应用程序窗口将始终出现在Z顺序的全屏窗口下面.
最后,我重新配置了我的应用程序,以便它直到稍后才进入全屏模式。这仍然在一开始就给了我一个相当好的类演示,并允许我的JDialog按其应有的方式工作。转换到全屏模式是快速和顺利的,甚至在我的应用程序的“中间”。
发布于 2010-09-21 20:12:59
JOptionPane.showInternalXXXDialog()方法将对话框呈现为JInternalFrames。也许您可以考虑使用JIternaFrame来模拟对话框。
发布于 2009-11-12 16:16:17
你真的希望这个应用程序处于全屏模式吗?这是一个更多的游戏功能-为了获得更多的直接访问帧缓冲区,我一直认为。你读过本教程吗:
http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html
在我看来,对于带有子窗口的Swing应用程序来说,真的不是最好的选择。
https://stackoverflow.com/questions/1722922
复制相似问题