Swing: установить размер области содержимого JFrame - PullRequest
20 голосов
/ 16 марта 2010

Я пытаюсь создать JFrame с областью полезного содержимого ровно 500x500. Если я сделаю это ...

public MyFrame() {
    super("Hello, world!");
    setSize(500,500);
}

... Я получаю окно, полный размер которого составляет 500x500, включая строку заголовка и т. Д., Где мне действительно нужно окно размером примерно 504x520 для учета границы окна и заголовка. Как мне этого добиться?

Ответы [ 3 ]

26 голосов
/ 16 марта 2010

вы можете попробовать несколько вещей: 1 - взломать:

public MyFrame(){
 JFrame temp = new JFrame;
 temp.pack();
 Insets insets = temp.getInsets();
 temp = null;
 this.setSize(new Dimension(insets.left + insets.right + 500,
             insets.top + insets.bottom + 500));
 this.setVisible(true);
 this.setResizable(false);
}

2- или Добавьте JPanel на панель содержимого фрейма и Просто установите предпочтительный / минимальный размер JPanel до 500X500, пакет вызовов ()

  • 2 - более портативен
25 голосов
/ 29 мая 2011

Просто используйте:

public MyFrame() {
    this.getContentPane().setPreferredSize(new Dimension(500, 500));
    this.pack();
}

Нет необходимости использовать JPanel, если вы просто хотите установить размер кадра.

7 голосов
/ 16 марта 2010

Неважно, я понял:

public MyFrame() {
    super("Hello, world!");

    myJPanel.setPreferredSize(new Dimension(500,500));
    add(myJPanel);
    pack();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...