2012-05-14 3 views
1

У меня есть класс, который создает мой gui. Одна часть gui - это jtabbed панель, панели для этого создаются в методе, они все одинаковы и имеют jtextarea и некоторые jbuttons.Доступ к компонентам swing, созданным в методе

Как получить доступ к компонентам на каждой вкладке из других методов/классов?

ответ

3

Вы можете поместить эти компоненты в поля классов. Например, если вам нужно получить доступ кнопки сделать поле

private Button myButton;

Создайте его в методе createUI(), а затем использовать его в методе doSomething().

Другой способ хранения контейнера (например, панели), а затем доступа к его компонентам с использованием panel.getComponents(). Используйте этот метод, только если у вас действительно есть очень похожие компоненты и не нужно различать их. Например, вы хотите изменить цвет всех компонентов и т.д.

+0

Вы хотите создать отдельный класс для построения каждой вкладки? – Peck3277

2

Вы можете использовать комбинацию getTabCount(), getTitleAt(), indexOfTab() и getComponent(). Дополнительная информация here

+0

У меня нет проблем с доступом к вкладке, поскольку я храню их как компоненты в Arraylist. У меня возникли проблемы с доступом к компонентам, таким как jtextarea на вкладке. – Peck3277

+0

Если вы знаете точную структуру вкладок, вы можете вызвать 'getComponent()' на соответствующих подкомпонентах. Если вы не знаете точной структуры, вам нужно будет найти способ идентифицировать компоненты (если метод строителя принадлежит вам, он может содержать список созданных компонентов) - лучшим способом было бы создать класс который моделирует вкладку и создает экземпляры этого класса для легкого доступа к внутренним компонентам – Attila

Смежные вопросы