為什麼要隐藏某列?在将資料庫中的表格輸出到 JTable 中時,經常遇到想要在背景操縱某列,但是又不想讓那一列在前台顯示出來的情況。

就比如說,隐藏這個 JTable 中的 id 列。隐藏的方法有下面兩種:
1、JTable的 removeColumn()
注:table 為 JTable 對象, column 為隐藏的列
JTable 僅僅是一個視圖,表格中真正的資料其實是放在 TableModel 中的,JTable 預設的是 AbstractTableModel。
使用 JTable 的 removeColumn 方法可以移除某列的 TableColumn(TableColumn類中定義了關于列的列寬等屬性設定),達到隐藏某列的目的。
想要獲得隐藏那列的值,就不能使用 JTable 的 getValueAt 方法了,必須從 JTable 的 TableModel 中使用 getValueAt 方法,才可以拿到值:
注:此時的 JTable 中已經移除該列,想要獲得資料隻能通過其 TableModel 的 getValueAt 方法
2、設定隐藏列的寬度為 0
table.getTableHeader().getColumnModel().getColumn(column).setMaxWidth(0);
table.getTableHeader().getColumnModel().getColumn(column).setMinWidth(0);
table.getTableHeader().getColumnModel().getColumn(column).setPreferredWidth(0);
這種方法才是真的隐藏,雖然操作代碼比較多,但是想要擷取隐藏列的值就比較簡單了,直接使用 JTable 的 getValueAt 方法就可以了。
總的來說,這兩種方法都達到了目的,使用 removeColumn 方法是從視圖中移除了某列,而設定寬度為 0 ,是在視圖中隐藏了某列。