Java 添加到ArrayList后刷新JTable
我有一个JTable,里面有一个车库的库存数据。它有零件、存储中的编号等。现在我有一个JOptionPane,如果您想向库存添加新零件,可以在其中输入数据。这很好,但是添加部件后如何刷新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
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