Подтвердить что ты не робот

Swing: размер области содержимого JFrame

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

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

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

4b9b3361

Ответ 1

вы можете попробовать пару вещей: 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, call pack()

  • 2- более портативный

Ответ 2

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

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

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

Ответ 3

Ничего, я понял:

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

    myJPanel.setPreferredSize(new Dimension(500,500));
    add(myJPanel);
    pack();
}