【问题标题】:Filter JTable only one one column过滤 JTable 仅一列
【发布时间】:2011-07-30 18:05:31
【问题描述】:

我有一个 JTable,我想对 JTextfield 进行过滤,但只根据一列过滤结果,而不是搜索所有列。

我有我可以过滤的 JTable,但我的过滤器会过滤和搜索表的每一列,我想将其限制为一列

可以吗?

【问题讨论】:

    标签: java swing search jtable


    【解决方案1】:

    监听 textFields 文档中的变化,并将适当的 rowFilter 设置为您要过滤的列:

     // on document change
     RowFilter rowFilter = RowFilter.regexFilter(textField.getText(), myColumn);
     table.getRowSorter().setRowFilter(rowFilter);
    

    (类型转换并防止省略空文本字段)

    【讨论】:

    • 非常感谢你这已经完成了我想要解决的解决的解决
    • 很想投票,但我还不允许投票:(:(:(但再次感谢
    • @user692808 你可以接受答案,不是吗?将增加您和我的声誉:-)
    【解决方案2】:

    在后台保留所有行(或支持数据)的主副本。

    搜索时,从文本字段中获取搜索条件并通过仅添加与条件匹配的项目来重建表模型。如果文本字段为空,则添加所有行。

    【讨论】:

    • 对 pre1.6 来说很好(虽然不是微不足道的),而不是从 1.6 开始:我的一般规则是始终使用任何框架提供的所有支持,其余的就够难了 ;-)
    【解决方案3】:

    您可以像这样扩展信封表模型http://java-sl.com/envelope.html 并只留下必要的行。

    【讨论】:

    • 仍处于 jdk1.5 (stone-) 时代;-)
    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多