#java
#java
Вопрос:
Как следует из названия, должен ли я создать один объект GridBagConstraint для каждого компонента? В
java как программировать 8-я редакция
они создают метод с именем AddComponent, однако, когда я читаю о GridBagLayout, я всегда заканчиваю тем, что читаю, что я не должен использовать один и тот же объект-ограничение. Чему я должен следовать?
Спасибо.
Ответ №1:
Совершенно безопасно повторно использовать один и тот же GridBagConstraint
экземпляр для каждого компонента, добавленного с помощью add
. В примере Sun GridBagLayout повторно используется один и тот же GridBagConstraint
экземпляр. Просто имейте в виду, что будут использоваться все GridBagConstraint
поля, поэтому вам может потребоваться сбросить некоторые из них.
Ответ №2:
Взглянув на вызовы метода GridBagLayout, которые вызываются при добавлении любого данного компонента, окончательный вызов переходит к:
public void setConstraints(Component comp, GridBagConstraints constraints) {
comptable.put(comp, (GridBagConstraints)constraints.clone());
}
Здесь GridBagLayout создает клон переданного объекта constraints, что означает, что каждый добавляемый компонент имеет свежую копию GridBagConstraints. Итак, должно быть совершенно нормально повторно использовать объект GridBagConstraints и вносить в него изменения по мере необходимости.
С уважением