Combobox не показывает ArrayList в графическом интерфейсе Java - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в свинге, и я пытаюсь показать данные 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 для запуска каждый раз при перезагрузке фреймворка, но он все еще не работает.

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