Как сбросить ограничения JLabel после его инициализации? - PullRequest
0 голосов
/ 20 июня 2010

Я инициализирую JLabel в кадре Java следующим образом:

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6, CellConstraints.DEFAULT, CellConstraints.BOTTOM));

Но перед показом JFrame я делаю небольшое условие, которое, если возвращает true, я хочу установить для myLabel значение DEFAULT вместо BOTTOM,но я не могу найти ничего, кроме как переопределить его снова, как это:

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6));

Так есть ли лучший способ просто отредактировать свойство вертикального местоположения?

1 Ответ

1 голос
/ 20 июня 2010

Если вы используете jgoodies FormLayout, вы несколько ограничены в повторном использовании CellConstraints экземпляров.Из документации и примеров видно, что каждый компонент добавляется на панель, а экземпляры CellConstraints копируются.Кроме того, при попытке собрать ограничения для текущего компонента возвращается копия CellConstraints.Тем не менее, у вас есть опция: вы можете взять эту копию CellConstraints, изменить публичный vAlign экземпляр var и затем вызвать setConstraints на вашем FormLayout с этим обновленным ограничением.

Это немного более многословно, чем простое повторное добавление, которое вы предоставили, но оно устраняет необходимость сохранения магических чисел (1,1,31,6) в исходном экземпляре.

...