Доступ к значению динамически создаваемых элементов управления Java Swing - PullRequest
1 голос
/ 06 ноября 2011

Я работаю в Java Swing и создаю динамическую форму с именами элементов управления opc1_1, opc1_2, opc1_3, opc2_1, opc2_2 и т. Д. Как получить значение каждого из элементов управления динамически?Я привел очень плохой пример для иллюстрации

for(int i = 1; i < 10; i ++) {
    Control objControl = get("opc1_" + i);
      if(objControl == JComboBox)
        System.out.println(objControl.getSelectedItem().toString());
      else if(objControl == JTextField)
        System.out.println(objControl.getText); 
}

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

Ответы [ 2 ]

3 голосов
/ 06 ноября 2011

Используйте массив / список для хранения ваших Control объектов, имена ваших Control объектов в вашем коде не важны.

Затем просто выполните итерацию по вашему массиву / списку, как длялюбой другой массив / список для получения значения каждого из ваших Control объектов.

Кроме того, = для назначения, == для сравнения и instanceof используется для проверки, еслиобъект определенного типа.Обычно вы стараетесь избегать использования оператора instanceof в хорошем дизайне OO.

2 голосов
/ 06 ноября 2011

Обратите внимание, что у компонента есть методы getName () и setName (). Когда вы добавляете все больше и больше компонентов в контейнер, это ваш друг. Я не думаю, что у контейнера есть метод getComponentNamed (String s), но его легко написать.

Я второе превосходное предложение Hovercraft об использовании карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...