在Java中是否有任何實現可以通過其列(標題值)篩選JTable(使用搜索JTextField)而不是其行?我需要根據搜索時找到的字符串顯示/隱藏列。按列篩選JTable而不是在Java中篩選行
1
A
回答
0
我想我已經得到了它的工作是這樣的:
聲明的臨時表和表模型的一些全局變量來保存隱藏的列:
private JTable hiddenTable = new JTable();
private DefaultTableColumnModel hiddenModel = new DefaultTableColumnModel();
然後使用過濾器方法來按下每個鍵,以將要隱藏的列添加到臨時表模型,同時將它們從主表模型中移除。然後你再告訴他們當字符串加入他們回到主表,並從暫時的消除他們一致:
private void filterList() {
// Hide columns
for (TableColumn column : table.getColumns()) {
if (!((String) column.getHeaderValue()).toLowerCase().contains(
searchBox.getText().toLowerCase().trim())) {
hiddenModel.addColumn(column);
table.getColumnModel().removeColumn(column);
}
}
// Show columns
for (TableColumn column : hiddenTable.getColumns()) {
if (((String) column.getHeaderValue()).toLowerCase().contains(
searchBox.getText().toLowerCase().trim())) {
table.getColumnModel().addColumn(column);
hiddenModel.removeColumn(column);
}
}
}
這裏唯一的問題是,重新添加到表時列失去它們的順序。
0
您可以使用自定義的TableModel實現來封裝您的真實模型以進行過濾。每當列更改時只需通知TableModelListeners。
1
在Java中是否有任何實現過濾JTable(使用搜索JTextField)的列(標題值)而不是其行?
- 是具有看看RowFilter並申請所需的列
我需要根據列在搜索時找到該字符串顯示/隱藏。
不是一件容易的事,因爲它需要很多的努力,和優秀的知識約
Java Essential classes
,Swing
和作爲一個專家JTable
我不會走這條路,用正確的
ColumnRender
,那麼欄應該高亮顯示,而不是屏幕上的JTables Column
跳過(隱藏 - >顯示--->隱藏等)有一些關於的例子3210,
RowSorter
,從來沒有需要,從來沒有嘗試過。
相關問題
- 1. 在Java中篩選列表
- 2. 在jQuery篩選表中篩選多列
- 3. JTable中的自動篩選
- 4. jTable從篩選行中獲取數據
- 5. 使用行來篩選Swing中的Jtable
- 6. 按列表中的值進行篩選
- 7. JTable排序和篩選
- 8. Java按屬性篩選模型列表並返回篩選列表
- 9. 按虛擬列篩選?
- 10. 按子列表篩選
- 11. scala playframework按列表篩選
- 12. Rails和Solr:按行篩選
- 13. 與下拉<select>而不是單選按鈕篩選
- 14. 在java中篩選集合
- 15. 在RethinkDB中按ID列表篩選
- 16. 篩選列表
- 17. 篩選幾列
- 18. 篩選列表
- 19. JTable的行篩選基於兩個不同的列
- 20. 按變量篩選選定列表
- 21. 按選項值篩選getElementsByTagName列表
- 22. 篩選行
- 23. 篩選錶行
- 24. cancancan行篩選
- 25. 篩選datagridview行
- 26. 密集篩選vs篩選?
- 27. 在Prolog中篩選列表
- 28. 在Javascript中篩選列表
- 29. 按屬性篩選
- 30. Django按周篩選
另請參閱本問答(http://stackoverflow.com/q/7137786/230513)關於響應表頭的點擊。 – trashgod