从数据库中获取数据后,必须在JTable中显示它。
在我的设计中,我可以指定JTable应该有多少行。

但是,当我的数据数组比指定的行长时,就会出现异常。
这是因为我的表对于要添加到其中的所有数据来说太小了。

如何根据数组的大小向表中动态添加行?

TableModel tmPerson = taTablePerson.getModel();

    for (int index = 0; index < arrpBag.length; index++)
    {
        dtmPerson.setValueAt(arrpBag[index].getId(), index, 0);
        dtmPerson.setValueAt(arrpBag[index].getRijksregisternummer(), index, 1);
        dtmPerson.setValueAt(arrpBag[index].getNaam(), index, 2);
        dtmPerson.setValueAt(arrpBag[index].getVoornaam(), index, 3);
        dtmPerson.setValueAt(arrpBag[index].getStraat(), index, 4);
        dtmPerson.setValueAt(arrpBag[index].getNummer(), index, 5);
        dtmPerson.setValueAt(arrpBag[index].getBus(), index, 6);
        dtmPerson.setValueAt(arrpBag[index].getPostnummer(), index, 7);
        dtmPerson.setValueAt(arrpBag[index].getGemeente(), index, 8);
        dtmPerson.setValueAt(arrpBag[index].getTelefoonnummer(), index, 9);
    }

    //Create extra rows when not enough
    if (taTabelPersonen.getRowCount() < arrpBag.length)
    {
    //What code should be placed here?
    }

    taTabelPersonen.setModel(dtmPersoon);

最佳答案

如何根据行的大小向表中动态添加行
数组?


您可以使用DefaultTableModel作为表模型,并调用addRow(Object[] rowData)方法来动态添加行并自动增加行数。这样,您可以忘记固定行的计数。例如,您可能会遇到以下情况:

Object[] header = new Object[]{"Id", "Rijksregisternummer", "Naam", "Voornaam"
                              ,"Straat", "Nummer", "Bus", "Postnummer"
                              ,"Gemeente", "Telefoonnummer"};

DefaultTableModel model = new DefaultTableModel(header, 0);

for (int index = 0; index < arrpBag.length; index++) {
    Object[] row = new Object[]{ arrpBag[index].getId()
                               , arrpBag[index].getRijksregisternummer()
                               , arrpBag[index].getNaam()
                               , arrpBag[index].getVoornaam()
                               , arrpBag[index].getStraat()
                               , arrpBag[index].getNummer()
                               , arrpBag[index].getBus()
                               , arrpBag[index].getPostnummer()
                               , arrpBag[index].getGemeente()
                               , arrpBag[index].getTelefoonnummer() };

    model.addRow(row);
}

taTabelPersonen.setModel(model);

09-12 03:51