我最初使用的是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));
答案 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)
框架有装饰(外框)。包试图做的是确保内容(可查看)区域满足所有子组件的首选大小的要求,然后添加它周围的框架装饰。
装饰的大小取决于平台
例如......