在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. 使用行来筛选Swing中的Jtable
- 5. jTable从筛选行中获取数据
- 6. JTable排序和筛选
- 7. 按子列表筛选
- 8. scala playframework按列表筛选
- 9. 按虚拟列筛选?
- 10. Rails和Solr:按行筛选
- 11. 与下拉<select>而不是单选按钮筛选
- 12. 在java中筛选集合
- 13. 在RethinkDB中按ID列表筛选
- 14. 筛选列表
- 15. 筛选列表
- 16. 筛选几列
- 17. JTable的行筛选基于两个不同的列
- 18. 筛选表行
- 19. 筛选datagridview行
- 20. 按选项值筛选getElementsByTagName列表
- 21. 按变量筛选选定列表
- 22. 密集筛选vs筛选?
- 23. 在Javascript中筛选列表
- 24. 在Prolog中筛选列表
- 25. Django按周筛选
- 26. 按属性筛选
- 27. JavaScript按值筛选
- 28. CQL:空列筛选器行
- 29. 如何筛选NullString在Java
- 30. 在使用java流时记录筛选结果按谓词筛选
另请参阅本问答(http://stackoverflow.com/q/7137786/230513)关于响应表头的点击。 – trashgod