Вопрос

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

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

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

Это было полезно?

Решение

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

Map<K, List<Component>>

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top