Обновить JTable после добавления в ArrayList

1

У меня есть JTable, заполненный инвентарными данными гаража. У него есть части, номер в хранилище и т.д. В этот момент у меня есть JOptionPane, где вы можете ввести данные, если хотите добавить новую часть в инвентарь. это прекрасно работает, но как обновить данные JTable после добавления части?

Это код, который я использую для первоначального заполнения таблицы:

private String[] kolommenOnderdelen = { "Nr", "Omschrijving", "Vooraad" };
private DefaultTableModel modelOnderdelen = new DefaultTableModel(kolommenOnderdelen, 0);

    for (Onderdeel a : voorraad.alleOnderdelen()) {
        modelOnderdelen.addRow(new String[] {
                Integer.toString(a.getOnderdeelNummer()),
                a.getOnderdeelOmschrijving(),
                Integer.toString(a.getOnderdeelVoorraad()) });
    }

    tabelOnderdelen = new JTable(modelOnderdelen)

и это код, который у меня есть для JOptionPane

        if (JOptionPane.showConfirmDialog(null, nieuwOnderdeel,
                "Voer de gegevens van het nieuwe onderdeel in",
                JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) == JOptionPane.OK_OPTION) {
            if (!onderdeelOmschrijving.getText().equals("")
                    && !onderdeelNR.getText().equals("")
                    && !onderdeelVoorraad.getText().equals("")) {
                if (voorraad.voegOnderdeelToe(new Onderdeel(
                        onderdeelOmschrijving.getText(), Integer
                                .parseInt(onderdeelNR.getText()), Integer
                                .parseInt(onderdeelVoorraad.getText())))) {
                    JOptionPane.showMessageDialog(null,
                            "Het onderdeel is toegevoegd");
                }
            } else {
                JOptionPane.showMessageDialog(null,
                        "Niet volledig ingevuld", "Vul alle gegevens in!",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
Теги:
swing
jtable
defaulttablemodel

1 ответ

2
Лучший ответ

Вы должны добавить новую строку в таблицуModel, как это было при запуске таблицы. Использование modelOnderdelen.addRow(..) будет работать, это будет уведомлять слушателей (представление), и новая строка будет показана в JTable.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню