Java получить максимальный размер окна состояния

Я занимаюсь разработкой мультиплатформенной игры и хотел создать полноэкранное окно без границ, и именно здесь я столкнулся с проблемой для операционной системы LINUX.

Для системы WINDOWS я использовал метод Toolkit.getDefaultToolkit(). GetScreenSize(), чтобы получить полный размер экрана, и он работал нормально, но для LINUX мой экран был немного шире и выше благодаря LINUX BARS.

* РЕШЕНИЕ в моем ответе ниже

2 ответа

Решение

*РЕШЕНИЕ
После многих часов работы в интернете я уже нашел решение получить размер окна, когда оно находится в состоянии MAXIMIZED (как вы нажимаете максимизировать квадрат на рамке), и дает вам максимально допустимый размер окна, обращая внимание на все панели ОПЕРАЦИОННОЙ СИСТЕМЫ. Вот метод: GraphicsEnvironment.getLocalGraphicsEnvironment (). GetMaximumWindowBounds()

Вы могли бы взглянуть на API полноэкранного эксклюзивного режима. Это даст вашей программе полный доступ ко всему экрану, избавляя вас от необходимости беспокоиться о панелях задач / доках и т. П.

Или вы могли бы сделать что-то вроде

GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
Rectangle bounds = gd.getDefaultConfiguration().getBounds();
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(gd.getDefaultConfiguration());

Rectangle safeBounds = new Rectangle(bounds);
safeBounds.x += insets.left;
safeBounds.y += insets.top;
safeBounds.width -= (insets.left + insets.right);
safeBounds.height -= (insets.top + insets.bottom);

По сути, все, что это делает, это получает границы экрана (x/y и width/height), вставки экранов для устройства и обновляет границы экрана, чтобы учитывать такие вещи, как панель задач и другие системные ресурсы.

Вы также можете просто попробовать использовать что-то вроде Frame#setExtendedStateчто позволит вам поставить окно в Frame.MAXIMIZED_BOTH и пусть это сделает всю работу за вас

Другие вопросы по тегам