2012-06-04 140 views
1

我想創建一個表,例如,有3列標題,但只顯示兩列,隱藏第三。jtable標題隱藏/無列

最後一列是固定的,用於像大多數應用程序一樣通過點擊並顯示彈出菜單來隱藏/顯示列。

乾杯

可能是我沒有描述清楚。我知道removeColumn/addColumn。通過點擊表格標題,我可以添加列或刪除它們。然而我很好奇的是在表頭最右角的一個專用列標題,它是固定的,寬度很小並且具有描述性的類似於表格的圖標。所以,通過鼠標左鍵點擊這個列標題,就會出現一個彈出菜單來隱藏/顯示列。這個列標題實際上並不包含列或行,而是標題,就像JDownloader一樣。

回答

2

有兩種方法可以做到這一點:

正確做法:

從表中刪除列

TableColumn lastColumn = table.getColumnModel().getColumn(lastIndex); 
table.removeColumn(lastColumn); 

不要這樣做:

設置寬度最後一列爲0:

table.getColumnModel().getColumn(lastIndex).setPrefferedWidth(0); 
table.getColumnModel().getColumn(lastIndex).setMaximumWidth(0); 
table.getColumnModel().getColumn(lastIndex).setMinimumWidth(0); 
+1

+1 [請刪除setXxxSize(http://stackoverflow.com/a/10089138/714968) – mKorbel

+0

方法1不是一個解決方案。這不是一個好主意。 removeColumn/addColumn是你應該看看。 – chubbsondubs

+0

謝謝都編輯我的帖子:) – mprabhat

4

你看看,JTable methods

這兩種方法只能隱藏/顯示JTables Column(s),數據仍然可用在TableModel

+0

+1爲爆炸 – mprabhat

+0

可能我沒有描述清楚。我知道removeColumn/addColumn。通過點擊表格標題,我可以添加列或刪除它們。然而我很好奇的是在表頭最右角的一個專用列標題,它是固定的,寬度很小並且具有描述性的類似於表格的圖標。因此,通過鼠標左鍵單擊該列標題,會出現一個彈出式菜單,用於隱藏/顯示列。這個列標題實際上並不包含列或行,而是標題,就像JDownloader一樣。 – user1429552

+0

然後由@羅賓(重新發明輪+1)回答是正確的方向, – mKorbel

3

的內置了用於在彈出窗口中顯示/隱藏列的UI(不幸的是我找不到它的圖像)。

你當然也可以創建這個自己使用建議的方法,但爲什麼要重新發明輪子