2013-12-17 70 views
0

這是我在DataAccessLayer中創建表的「創建」代碼。jTable - 如何顯示只顯示有限的列? Java

private TableModel getResultSetAsDefaultTableModel(ResultSet rs) { 

    try { 

     String[] columnHeadings = new String[0]; 
     Object[][] dataArray = new Object[0][0]; 

     ResultSetMetaData md = rs.getMetaData(); 
     int columnCount = md.getColumnCount(); 

     for (int i = 1; i <= columnCount; i++) { 
      String columnName = md.getColumnName(i); 
      columnHeadings = Arrays.copyOf(columnHeadings, columnHeadings.length + 1); 
      columnHeadings[i - 1] = columnName; 
     } 

     int r = 0; 

     while (rs.next()) { 

      Object[] row = new Object[columnCount]; 
      for (int i = 1; i <= columnCount; i++) { 
       row[i - 1] = rs.getObject(i); 
      } 

      dataArray = Arrays.copyOf(dataArray, dataArray.length + 1); 
      dataArray[r] = row; 

      r++; 
     } 

     DefaultTableModel dtm = new DefaultTableModel(dataArray, columnHeadings) { 
      public boolean isCellEditable(int row, int column) { 

       return false; 
      } 
     }; 

     return dtm; 

    } catch (SQLException ex) { 

     Logger.getLogger(Dataaccesslayer.class.getName()).log(Level.SEVERE, null, ex); 
    } 

    return null; 

} 

**這導致一些併發症,因爲我的一個表有50個不同的列,因此,您無法讀取COLUMNNAMES或什麼是在細胞中。

的問題是,表中的值由元數據確定...

我想限制被顯示爲所有表的具體數量(5)列。 我怎麼辦呢?**

親切的問候,

克里斯

回答

0

你可以刪除表,如果你想...

int amountColumns = table.getColumnModel().getColumnCount(); //count columns 
TableColumn c6 = table.getColumnModel().getColumn(6); //identif a random column 
table.getColumnModel().removeColumn(c6); //remove this column 

我希望幫助...

0

我不會刪除它們,但將它們的大小更改爲0.

int amountColumns = table.getColumnModel().getColumnCount(); //count columns 
TableColumn c6 = table.getColumnModel().getColumn(6); //identif a random column 
table.getColumnModel().setMin(0); 
table.getColumnModel().setMax(0); 
table.getColumnModel().setPreferredWidth(0); 

像我回答你在你的其他線程...

+0

還有另一個線程?! ouh,然後讓我們關閉這個!你可以保留嗎? (我認爲我還不能,或者,我可以嗎?) –

+0

是在這裏:http://stackoverflow.com/questions/20655197/jtable-in-gui-java-does-not-show-all-data-from-database - 錯誤 - 在-的TableModel。我無法設置:擁有3000名聲望的用戶每天最多可以投50票。當問題達到5票時,它被標記爲[擱置],並且不再接受答案。 – dehlen

+0

rtfm,哈哈,對,我現在自己找到了,現在^^多麼可惜,重複應該更容易標記 –