JFrame setPreferredSize会导致屏幕尺寸略大

时间:2013-11-02 09:06:36

标签: java swing

我最初使用的是setSize,但由于java边框和标题空间,导致屏幕内容略大于屏幕。所以我使用了setpreferredSize,现在屏幕尺寸有点太大了。在我的内容的右侧和底部留下一个空间。

在我的JFrame中:

add(new Board());
    setTitle("Rougebot");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //setSize(600, 800);
    //getContentPane().setPreferredSize(new Dimension(600,800));
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
    setResizable(false);

在我的董事会(JPanel)

setPreferredSize(new Dimension(600,800));

2 个答案:

答案 0 :(得分:8)

在致电setResizable(false)之前致电pack()

add(new Board());
setTitle("Rougebot");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false); // <-- here
pack();
setLocationRelativeTo(null);
setVisible(true);

继续设置Board的首选尺寸,如原始帖子中的示例所示。

在Windows中,固定边框比可调整大小的边框更薄,如果计算尺寸然后设置为固定大小,则更改窗口边框宽度,在Windows中,窗口边框宽度会导致客户端区域增加,外部尺寸保持固定。

答案 1 :(得分:1)

框架有装饰(外框)。包试图做的是确保内容(可查看)区域满足所有子组件的首选大小的要求,然后添加它周围的框架装饰。

装饰的大小取决于平台

例如......