我之前曾遇到过这个问题,我终于尝试解决了这个问题,但是我找不到合适的解决方案。我有一个简单的JFrame程序。基本的JFrame代码如下所示:
JFrame frame = new JFrame("halp");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setResizable(false);
frame.setVisible(true);
这是我要完成的工作的图像:
如您所见,顶部栏和窗口的边框占用了空间。解决此问题的一种方法是增加窗口的大小,但这并不是整齐的,而且并非每个系统都具有相同的窗口边框大小。
我已经进行了研究,并尝试了一些在先前提出的问题上发现的事情:
frame.pack()
。此方法仅将窗口设置为最小大小,好像我根本没有设置大小一样。frame.getContentPane().setSize(500,500);
。窗口中的边框仍以帧大小计。frame.setPreferredSize(new Dimension(500, 500));
和JPanel.setPreferredSize(new Dimension(500, 500));
。与frame.pack()
一样,帧变为最小尺寸。我尝试结合使用这些方法,但似乎没有任何效果。
我想念什么?我需要添加JFrame的另一方面吗?这是BlueJ的不兼容问题吗?
最佳答案
frame.getContentPane().setPreferredSize(new Dimension(500,500));
跟一个
frame.pack();
应该可以解决您的问题。