1

是否禁忌使用多个预设尺寸对象来设置屏幕上不可调整大小的组件的首选大小。例如:两个文本字段都应该是 80x20 像素,所以:

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

1 回答 1

4

是的,它是“安全的”。引用Java 性能调优

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

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

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

因此更改d将影响存储在tf1和中的维度对象tf2

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

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

d.width += 1;               // <-- will affect also tf1.
tf2.setPreferredSize(d);
于 2011-09-15T11:43:08.657 回答