Swing:设置JFrame内容区域大小

2022-01-24 00:00:00 java swing jframe

我正在尝试制作一个可用内容区域正好为 500x500 的 JFrame.如果我这样做......

I'm trying to make a JFrame with a usable content area of exactly 500x500. If I do this...

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

... 我得到一个全尺寸为 500x500 的窗口,包括标题栏等,我真的需要一个大小为 504x520 的窗口来说明窗口边框和标题栏.我怎样才能做到这一点?

... I get a window whose full size is 500x500, including the title bar, etc., where I really need a window whose size is something like 504x520 to account for the window border and titlebar. How can I achieve this?

推荐答案

你可以尝试几件事:1 - 一个黑客:

you may try couple of things: 1 - a hack:

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,调用 pack()

2- or Add a JPanel to the frame's content pane and Just set the preferred/minimum size of the JPanel to 500X500, call pack()

  • 2- 更便携

相关文章