添加到ArrayList后刷新JTable [英] Refresh JTable after adding to ArrayList

查看:230
本文介绍了添加到ArrayList后刷新JTable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个JTable,里面装有车库的库存数据.它具有零件,存储的编号等.此刻,我有一个JOptionPane,如果您想向库存中添加新零件,则可以在其中输入数据.效果很好,但是添加部件后如何刷新JTable数据?

I have a JTable that's filled with the inventory data of a garage. It has parts, number in storage etc. At this moment i have a JOptionPane where you can enter the data if you want to add a new part to the inventory. that works fine but how do i refresh the JTable data after the part is added?

这是我最初用来填充表格的代码:

This is the code I use to fille the table initially :

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编写的代码

and this is the code I have for the 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中. 使用modelOnderdelen.addRow(..)将起作用,这将通知侦听器(视图),新行将显示在JTable中.

You have to add the new row to the tableModel as you did when you init the table. Using modelOnderdelen.addRow(..) will work, this will notify listeners (the view) and the new row will be shown in JTable.

这篇关于添加到ArrayList后刷新JTable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆