Java 添加到ArrayList后刷新JTable

Java 添加到ArrayList后刷新JTable,java,swing,jtable,defaulttablemodel,Java,Swing,Jtable,Defaulttablemodel,我有一个JTable,里面有一个车库的库存数据。它有零件、存储中的编号等。现在我有一个JOptionPane,如果您想向库存添加新零件,可以在其中输入数据。这很好,但是添加部件后如何刷新JTable数据 这是我最初用来填充表格的代码: private String[] kolommenOnderdelen = { "Nr", "Omschrijving", "Vooraad" }; private DefaultTableModel modelOnderdelen = new DefaultTa

我有一个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);
            }
        }

您必须像初始化表时那样将新行添加到tableModel中。
使用
modelonderelen.addRow(…)
将起作用,这将通知侦听器(视图),新行将显示在JTable中。

您必须调用
modelonderelen.addRow(…)
当您要添加新行时,请更新您的问题以显示
modelonderelen
的类型,很可能是
DefaultTableModel
。我想这让@nachokk的答案更加清晰了。@trashgood这是真的。。我应该把。。假设您使用的是DefaultTableModel