Полноэкранное свинг с JOGL - PullRequest
6 голосов
/ 22 ноября 2010

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

Ответы [ 2 ]

4 голосов
/ 22 ноября 2010

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

0 голосов
/ 06 декабря 2010

Вы не можете вызвать setUndecorated (...) в отображаемом окне, вы должны сначала удалить его, но это также приведет к удалению холста. Для этого используйте общий рисованный объект и удалите его перед вызовом dispose () для фрейма.

...