Я новичок в свинге, и я пытаюсь показать данные Array на ComboBox, но по какой-то причине, когда я добавляю в него данные, ComboBox, похоже, не обновляется с добавленными данными, хотяесли я запускаю тест на консоли, используя system.out внутри forEach, данные вставляются в ArrayList (это также отображается при отладке).Вот класс mainMenu:
package com.gui.main;
/* imports */
public class mainMenu {
ArrayList<Instituicao> instituicoes = new ArrayList<Instituicao>();
private JFrame frame;
public static void main(String[] args) {
/*...*/
}
public mainMenu() {
initialize();
}
public void setComboboxInstituicao(JComboBox comboBox) {
comboBox.removeAllItems();
Vector<String> inst = new Vector<String>();
if(!instituicoes.isEmpty()) {
for(Instituicao i : instituicoes) {
inst.add(i.getNomeInstituicao());
}
} else {
inst.add("Select...");
}
comboBox.setModel(new DefaultComboBoxModel<String>(inst));
comboBox.setBounds(22, 120, 600, 33);
frame.getContentPane().add(comboBox);
}
private void initialize() {
/*...*/
// ComboBox
JComboBox<String> comboBox = new JComboBox<String>();
setComboboxInstituicao(comboBox);
JLabel lblSelecioneUmaInstituio = new JLabel("Select an institution:");
lblSelecioneUmaInstituio.setBounds(22, 93, 206, 15);
frame.getContentPane().add(lblSelecioneUmaInstituio);
// Calls another window for data insert
JButton btnNovaInstituio = new JButton("New Institution");
btnNovaInstituio.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
adicionaInstituicao window = new adicionaInstituicao();
window.frame.setVisible(true);
}
});
/*...*/
}
}
Я использовал функцию setCombobox для запуска каждый раз при перезагрузке фреймворка, но он все еще не работает.