JTable根据数组的长度添加行

时间:2014-02-22 14:21:54

标签: java swing jtable row

从我的数据库中获取数据后,我必须在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);  

1 个答案:

答案 0 :(得分:1)

  

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

您可以使用DefaultTableModel作为表格模型,并调用addRow(Object[] rowData)方法以dinamically方式添加行并自动增加行的计数。这样您就可以忘记固定行的计数。例如,你可能有这样的事情:

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);
相关问题