我应该为每个组件创建一个GridBagConstraint对象

时间:2011-04-25 21:41:54

标签: java

正如标题所说,我应该为每个组件制作一个GridBagConstraint对象吗?在

  

java如何编程第8版

他们创建了一个名为addComponent的方法,但是当我读到GridBagLayout时,我总是读到我不应该使用相同的约束对象。我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:1)

对于添加了GridBagConstraint的每个组件,重复使用相同的add实例是完全安全的。 Sun GridBagLayout example重复使用相同的GridBagConstraint实例。请注意,将使用所有GridBagConstraint字段,因此您可能需要重置其中一些字段。

答案 1 :(得分:0)

看一下在添加任何给定组件时调用的GridBagLayout方法调用,最后调用将转到:

public void setConstraints(Component comp, GridBagConstraints constraints) {
    comptable.put(comp, (GridBagConstraints)constraints.clone());
}

这里,GridBagLayout正在创建传递的约束对象的克隆,这意味着要添加的每个组件都有GridBagConstraints的新副本。因此,重用GridBagConstraints对象并根据需要对其进行更改应该是完全正常的。

此致