Сгруппировать компоненты Java - PullRequest
4 голосов
/ 11 февраля 2010

Я создаю графический интерфейс в Java, используя GridBagLayout. Можно ли как-нибудь создать группу компонентов, чтобы я мог передать ссылку на группу и получить доступ ко всем из них?

Я подумал о создании панели и группировании компонентов таким образом, но мне было интересно, есть ли другой способ, который использует сложность GridBagLayout.

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 11 февраля 2010

Что ж, если вы не можете создать bean-компонент с JLabel, JTextField и JButton для содержания вашей группы, вы всегда можете использовать Map на главной панели пользовательского интерфейса, чтобы зарегистрировать элементы при их добавлении. Некоторая структура как

Map<K, List<Component>>

может работать, где K - идентификатор группы. Таким образом, вы отделяете компоненты от их расположения в пользовательском интерфейсе.

2 голосов
/ 11 февраля 2010

Вы должны думать о панелях только для записи. Вы загрузили свои компоненты там, все настроено и с правильными ограничениями макета. Вы (почти) никогда не идете и не ищите компоненты.

Вместо этого добавьте компоненты к Set (или аналогичному) при настройке. Затем вы можете сделать очень чистую шикарную петлю for над коллекцией, чтобы выполнить соответствующую задачу. Более продвинутый метод - индивидуальные наблюдатели (слушатели) обновляют компоненты из модели.

0 голосов
/ 11 февраля 2010

Обычный способ - использовать JPanel, как вы предложили. Помните, что сам JPanel может иметь свой собственный независимый менеджер макета. Поэтому вы можете использовать GridBagLayout на JPanel для размещения элементов на панели.

...