Вы должны иметь возможность работать в полноэкранном режиме с помощью GraphicsDevice.setFullScreenWindow (window)
. Однако из-за ошибок в самых популярных средах выполнения Java это может не работать на системах, использующих определенные «сломанные» версии серии 1.6 = Java 6. Я не проверял это тщательно, так что, возможно, патч еще не распространился среди населения.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7057287
Общие сведения/теория
Итак, здесь слишком много информации и недостаточно помощи… Вот небольшая информация о том, почему это не сработало…
Рабочий стол Linux не существует
Операционные системы на основе Linux на компьютерах типа ПК, а также другие Unices (с частичным исключением для MacOSX) обычно используют систему X Window (также известную как X11). В X у вас есть X-сервер (обычно что-то вроде «видеодрайвера») и клиенты, которые подключаются к нему, чаще всего, с одной и той же машины (петля).
Компоновкой и размещением окон управляет специальная клиентская программа, называемая диспетчером окон. Он отвечает за украшение окон (например, рисование заголовков или ручек изменения размера) и их размещение.
Ваша программа будет X-клиентом. Он может запрашивать — но не требовать — размещение на экране в определенной позиции или определенного размера. Различные оконные менеджеры более (или менее) склонны давать вам то, что вы хотите.
За исключением того, что большинство настольных компьютеров воспроизводится хорошо (иногда)
Теперь, безусловно, большинство рабочих столов Linux используют рабочий стол Gnome, второе место занимает рабочий стол K, а некоторые другие используются довольно широко. Что «приятно», так это то, что обе эти среды рабочего стола (а также некоторые другие, такие как XFCE для недорогих ПК) соответствуют стандартам Подсказки оконного менеджера FreeDesktop.org.
(Супер-упрощение:) Как правило, Панели располагаются на одном или нескольких краях экрана. Обычно есть только один, сверху, но есть множество вариантов. Эти области панели не считаются «частью экрана», поэтому диспетчер окон сообщает вашему приложению: «нет, это находится за пределами области, в которой вам разрешено играть; этот экран не 1920×1080, а только 1890×1080». Конечно, это может быть совсем другое расположение, чем то, что вы ожидали, когда писали свое приложение, и вы могли бы сидеть на моем нетбуке с физическим экраном 800×480, притворяясь только 780×480.
Для 99% приложений это отлично. Windows не мешает панелям, поэтому вы всегда можете получить доступ к панели для важных элементов управления, таких как отключение звука, переключение на другую программу или что-то в этом роде.
Эти «подсказки» позволяют вам запросить особую обработку ваших окон верхнего уровня. Например, вы можете потребовать, чтобы у вас не было строки заголовка — или была сокращена строка заголовка типа «палитра»; вы можете запросить пропуск в списке окон, панели задач, обзоре действий или любом другом интерфейсе, который может использоваться для отображения активных окон; или вы можете запросить настоящий полноэкранный режим и убрать все остальное, даже панели.
Спецификация находится здесь: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
И сбой:
По сути, Sun/Oracle (или Red Hat, которая скопировала Sun/Oracle, или, возможно, IBM, потому что они, вероятно, сделали то же самое, не соблюдали спецификацию подсказок оконного менеджера) )…
Хотя я вижу, как некоторые спорят о том, является ли это ошибкой (в частности) с оконным менеджером K Desktop Environment (KWin), поскольку очевидно эта ошибка проявляется только в K, и нет в Gnome, XFCE и других.
Временное решение
Помимо исправления вашей среды выполнения Java (и/или среды выполнения ваших клиентов), единственным реальным решением будет использование специфичных для платформы библиотек Java (возможно, получение базовых объектов AWT с помощью отражения… фу…) и установка правильных оконных подсказок самостоятельно. .
Да, это мерзко…
person
BRPocock
schedule
12.01.2012