This question already has an answer here:
My JFrame always becomes a few pixels too big.
(1个答案)
3年前关闭。
这是了解
这就是它所显示的:
现在,当我将
问题:第一个示例中的填充来自哪里?如第二个示例中所示,如何制作
2)
(1个答案)
3年前关闭。
这是了解
JFrame::setResizable(boolean)
工作方式的简单程序:JFrame frame = new JFrame("Test");
JPanel p1 = new JPanel();
FlowLayout fl = new FlowLayout(FlowLayout.LEADING, 0, 0);
//Adding buttons
p1.setLayout(fl);
p1.setBackground(Color.BLACK);
p1.add(new JButton("1"));
p1.add(new JButton("1"));
p1.add(new JButton("1"));
p1.add(new JButton("1"));
p1.add(new JButton("1"));
//Adding to JFrame
frame.add(p1);
frame.pack();
//Here is where the problem comes
frame.setResizable(false);
//The rest...
frame.setLocationRelativeTo(null);
frame.setVisible(true);
这就是它所显示的:
现在,当我将
frame.setResizable(false);
更改为frame.setResizable(true);
时,它的工作原理如下(我没有进行任何大小调整,而是在启动之后进行的):问题:第一个示例中的填充来自哪里?如第二个示例中所示,如何制作
resizable = false
窗口(即不包含这些填充)。 最佳答案
从此discussion看来,如果您更改setResizable
和pack
的顺序,该问题将不再发生(我对此进行了测试并且有效)。
因此,请按以下顺序调用它们:
1)
frame.setResizable(false);
2)
frame.pack();
10-04 23:23