Java JFrame Размер в соответствии с разрешением экрана - PullRequest
13 голосов
/ 21 июля 2011

Я создал графический интерфейс Java, используя myEclipse Matisse. Когда у меня разрешение экрана 1024x768, оно работает нормально, но когда я меняю разрешение, мой графический интерфейс не работает нормально. Я хочу, чтобы мое окно GUI было изменено в соответствии с разрешением экрана Я расширяю JFrame для создания главного окна.

 public class MyClass extends JFrame {

      //I am putting some controls here.

      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      setBounds(0,0,screenSize.width, screenSize.height);
      setVisible(true);

      pack()

    }

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

Ответы [ 7 ]

28 голосов
/ 21 июля 2011

Вы можете попробовать использовать это, чтобы максимизировать кадр:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);
15 голосов
/ 21 июля 2011

Вы звоните pack(), который меняет размер кадра, так что он просто соответствует компонентам внутри.Вот почему это сокращается, я думаю.Удалите строку pack(), и она должна работать.

5 голосов
/ 17 ноября 2015

Еще один способ сделать это:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
pack();
setSize(screenSize.width,screenSize.height);
5 голосов
/ 21 июля 2011

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

Затем вызов setSize() и связанных с ними методов, таких как setBounds() впоследствии.

1 голос
/ 18 июня 2016

Попробуйте это ... Выберите все компоненты JFrame, щелкните правой кнопкой мыши, выберите «Auto Resizing», проверьте как по горизонтали, так и по вертикали, закройте.

0 голосов
/ 31 марта 2015

Сначала задайте границы для фрейма, затем удалите метод pack ().

0 голосов
/ 21 июля 2011

Вызов pack () обычно приводит к изменению размера окна в соответствии с предпочтительным размером содержимого.Попробуйте удалить вызов pack () и посмотрите, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...