Размер Java JFrame в соответствии с разрешением экрана

Я создал java-интерфейс с помощью myEclipse Matisse. когда мое разрешение экрана 1024x768 работает нормально, но когда я меняю разрешение, мой графический интерфейс не работает нормально. Я хочу, чтобы окно моего графического интерфейса было изменено в соответствии с разрешением экрана Я расширяю 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, размер кадра остается таким же.

Ответ 1

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

Ответ 2

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

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

Ответ 3

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

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

Ответ 4

Другой способ сделать это:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
pack();
setSize(screenSize.width,screenSize.height);

Ответ 5

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

Ответ 6

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

Ответ 7

Сначала установите флажки для фрейма, затем удалите метод pack().