我有一个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);
}
}
答案 0 :(得分:2)
您必须像初始化表时一样将新行添加到tableModel。
使用modelOnderdelen.addRow(..)
将起作用,这将通知侦听器(视图),新行将显示在JTable中。