所以我对 GUI 很陌生,遇到了一个问题,即无论我将首选大小设置为 ( via setPreferredSize(new Dimension(width, height))
),它都会增加10
宽度和高度。我想知道,为什么会发生这种情况?是的,我知道这是“首选尺寸”,但肯定有办法防止这种情况发生。10
在将它传递给方法之前,我可以通过简单地减去宽度和高度来修复它,但我想知道发生了什么。
我的(相关)代码:
主要方法:
public static void main(String[] args)
{
final App app = new App(500, 500);
JFrame frame = new JFrame("Block Stacker 3000");
frame.getContentPane().add(app);
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
System.out.println(app.getSize());
app.start();
}
应用构造函数(扩展 JPanel):
public App(int width, int height)
{
this.width = width;
this.height = height;
System.out.println(width + " " + height);
setPreferredSize(new Dimension(width , height));
setBackground(Color.CYAN);
}
运行时,它会输出以下内容:
500 500
java.awt.Dimension[width=510,height=510]
另外,我尝试过使用setMinimumSize()
,setMaximumSize()
但都没有真正影响任何东西。