禁止使用几个预设的尺寸对象在屏幕上设置不可调整大小的组件的首选大小。
例如:两个文本字段都应为80x20像素,因此:

Dimension d = new Dimension(80, 20);
tf1.setPreferredSize(d);
tf2.setPreferredSize(d);

最佳答案

是的,它是“安全的”。从Java Performance Tuning引用:


  [...]相同的Dimension对象可用于多个组件。 [...]


取决于您想要什么。请注意,Component中的实现不会复制参数的内容,而是存储引用:

public void setPreferredSize(Dimension preferredSize) {
    ...
    this.prefSize = preferredSize;
    ...
}


因此更改d将影响存储在tf1tf2中的尺寸对象。

(我的意思是下面的代码可能无法达到您的期望。)

Dimension d = new Dimension(80, 20);
tf1.setPreferredSize(d);

d.width += 1;               // <-- will affect also tf1.
tf2.setPreferredSize(d);

10-08 14:29