Полноэкранный swing с JOGL

Я пытаюсь сделать приложение 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?

Попробуйте отключить -Dsun.java2d.noddraw=true как это часто задаваемые вопросы .

Вы не можете вызвать setUndecorated (…) в отображаемом окне, вы должны сначала его утилизировать, но это тоже удалит canvas. Используйте общий ansible для этого и удалите его перед вызовом функции dispose () в фрейме.