2011-12-02 39 views
0

getRowCount()獲取設置的行數,所以我無法使用它。如何獲取JTable中不爲null的行數?

這是我做的,它不工作:

private String[][] getContentsFromTable(){ 
    int cols= jTable1.getColumnCount(); 
    int rows=jTable1.getRowCount(); 
    System.out.print(rows); 
    String items[][]= new String[rows][cols]; 
    if(jTable1.getCellEditor()!=null) 
     jTable1.getCellEditor().stopCellEditing();   
    for(int i=0;i< jTable1.getRowCount();i++){ 
     for (int j=0;j<jTable1.getColumnCount();j++){ 
      //skip subtotal 
      if(j!=3){ 
       if(jTable1.getValueAt(i,j)!=null){ 
        String om=jTable1.getValueAt(i,j).toString(); 

        if(om.trim().length()!=0){ 
         items[i][j]=om; 
         //System.out.print(""+i+",j "+j+": "+items[i][j]); 
       } 
       } 
      } 
     } 

    } 
    return items; 

} 

編輯:表是編輯,我需要從行得到的所有數據,所以我必須走了過來,並識別號非空行,所以我可以在循環中使用它們並將數據存儲在數據庫中

+3

你是什麼意思「設置的行數」? JTable的getRowCount()將返回視圖中的行數。這可能與底層TableModel中的行數相對應也可能不對應,這也暴露了getRowCount()方法。你不應該關心「空」行;這表明你的設計有些奇怪。 – Adamski

+0

表是可編輯的,必須填充。我需要從行中獲取所有數據,所以我必須查看它並確定非空行數,以便我可以在循環中使用它們並將數據存儲在數據庫中 – user1077271

回答

0

有點太晚了,但對於任何有空行的問題的人,.getValueAt拋出一個空異常,所以不要嘗試用它來檢查空行。