我之前曾遇到过这个问题,我终于尝试解决了这个问题,但是我找不到合适的解决方案。我有一个简单的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的不兼容问题吗?
答案 0 :(得分:1)
frame.getContentPane().setPreferredSize(new Dimension(500,500));
后跟
frame.pack();
应该解决您的问题。