2014-02-22 65 views
0

從我的數據庫中獲取數據後,我必須在JTable中顯示此信息。 在我的設計中,我可以指定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

我怎麼能動態地行根據 數組大小添加到我的表?

您可以使用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);