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