Я использую плагин Window Builder для Eclipse для создания приложения Java Swing Desktop Front End. Проблема в том, что при прослушивании событий, когда я хочу получить значение компонентов, я индивидуально получаю компонент по индексу. См фрагмент кода Каков лучший способ получить компоненты swing
public class SomeListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
//button from which action is triggered
JButton startTestButton = (JButton) event.getSource();
//components
Component[] components = startTestButton.getParent().getComponents();
//Get individual components
JCheckBox endUserLabel = (JCheckBox) components[0];
}
}
Проблема, когда-либо новый элемент добавляется в контейнер, позволяет сказать JTextBox, индекс всех элементов изменяется. Есть ли лучший способ достичь этого?
Вы имеете в виду вы хотите добавить компонент на какое-то событие действия? – rachana
@rachana Нет, я имел в виду, что если есть много компонентов, то место реструктуризации компонентов или их добавление в контейнер приведет к исключению класса cast Exception, т.е. компоненты JCheckBox endUserLabel = (JCheckBox) [4]; 'через исключение b/c метка может быть на другом индексе. –
Затем проверьте, является ли это JCheckBox.class перед выполнением кода. –