Полный экран JFrame не покрывает экран - PullRequest
0 голосов
/ 17 декабря 2018

Я искал решение для этого, но не могу найти его.Если это уже было дано, пожалуйста, свяжите меня с ответом.Я создаю JFrame, устанавливая его на полный экран и меняя режим отображения.Это все работает нормально, и режим отображения поддерживается моей видеокартой (я уже проверил), так что все в порядке.Я добавляю холст в JFrame, создаю буферную стратегию и использую ее для рисования пользовательской графики на экране.Проблема состоит в том, что когда режим отображения изменяется и JFrame входит в полноэкранный режим, он не покрывает весь экран.Это не имеет смысла, поскольку режим отображения составляет 1024 x 768, а размер холста также составляет 1024 x 768.Вместо этого холст располагается в верхнем левом углу экрана в тех же пропорциях, что и в тех случаях, когда режим отображения не был изменен.Кроме того, графика не рисуется правильно.Все работает нормально, когда я не пытаюсь изменить режим отображения и установить полный экран.

Вот три строки кода, которые устанавливают все на весь экран.

gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    gd.setFullScreenWindow(this);
    gd.setDisplayMode(new DisplayMode(1024,768,32,48));

Яработает windows 10 и мой обычный режим отображения 3840x2160.Вот скриншот того, что происходит, когда я запускаю код.

screen shot

Несмотря на то, что это не похоже на это, режим отображения определенно изменяется, поскольку экран становится черным, а затем экран становится меньше и более размытым.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы пытались развернуть окно с помощью setExtendedState?(Как в примере ниже)

import javax.swing.JFrame;

public class MaximizedFrame
{
  public static void main(String[] args)
  {
    JFrame frame = new JFrame("My Frame");
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setVisible(true);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...