我正在尝试创建一个全屏渲染的Swing应用程序,按照此处的说明http://download.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html和此处的源代码http://download.oracle.com/javase/tutorial/extra/fullscreen/example-1dot4/DisplayModeTest.java
这非常有效,但是只要我将GLCanvas对象作为框架的一个组件放入,所有显示的都是黑屏。退出全屏,我可以在全屏幕上看到OpenGL图像片刻,然后在窗口中再次显示正常。即使没有显示任何内容,我也可以像摇摆组件一样与按钮进行交互,就好像它们一样。
在我看来,几乎就像在实际的摇摆应用程序之上绘制了另一个空白缓冲区,但我无法弄清楚为什么会这样。或者,我想知道处理JOGL的显卡处理全屏是不是问题?
我不需要硬件加速全屏,虽然它可能很好 - 如果这是不可解决的,是否有更强大的方法在Java应用程序中实现全屏?
答案 0 :(得分:4)
尝试禁用-Dsun.java2d.noddraw=true
,this FAQ说。
答案 1 :(得分:0)
你不能在可显示的窗口上调用setUndecorated(...),你必须首先处理它,但这也会处理画布。使用共享drawable执行此操作并在调用框架上的dispose()之前将其删除。