Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个值之间的Java JTable行分类器_Java_Regex_Jtable_Rowfilter_Rowsorter - Fatal编程技术网

两个值之间的Java JTable行分类器

两个值之间的Java JTable行分类器,java,regex,jtable,rowfilter,rowsorter,Java,Regex,Jtable,Rowfilter,Rowsorter,我试图在JTable中的两个值之间进行“实时搜索”。假设这是我的桌子: 我用这样的东西做过正常的搜索 jTextField1.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { String search = jTextField1.getText();

我试图在JTable中的两个值之间进行“实时搜索”。假设这是我的桌子:

我用这样的东西做过正常的搜索

    jTextField1.getDocument().addDocumentListener(new DocumentListener() {
        @Override
        public void insertUpdate(DocumentEvent e) {
            String search = jTextField1.getText();

            if (search.trim().length() == 0) {
                rowSorter.setRowFilter(null);                    
            } else {
                rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + search));
            }

        }
        @Override
        public void removeUpdate(DocumentEvent e) {
            String search = jTextField1.getText();

            if (search.trim().length() == 0) {
                rowSorter.setRowFilter(null);
            } else {
                rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + search));
            }

        }
        @Override
        public void changedUpdate(DocumentEvent e) {
            throw new UnsupportedOperationException("Not supported yet."); 
        }
    }); `
我现在想做的是这样的事情,但正如您可以看到的,有两个值“from to”,并且只显示这个记录,其中的值介于min和max之间,并且等于它们。比如说从150到300。但我不知道如何做到这一点,我尝试了组合2个过滤器,如

List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
filters.add( RowFilter.numberFilter(ComparisonType.AFTER, Float.parseFloat(min)) );
filters.add( RowFilter.numberFilter(ComparisonType.BEFORE, Float.parseFloat(max)) );
RowFilter<Object, Object> rf = RowFilter.andFilter(filters);
rowSorter.setRowFilter(rf);
List filters=newarraylist(2);
filters.add(RowFilter.numberFilter(ComparisonType.AFTER、Float.parseFloat(min));
filters.add(RowFilter.numberFilter(ComparisonType.BEFORE,Float.parseFloat(max));
RowFilter rf=RowFilter.andFilter(过滤器);
行分类器。设置行过滤器(rf);
但这是行不通的。有人知道怎么做吗?我开始放弃了。。。啊哈,表中的数据是对象,我使用的是默认的表模型。正如你所看到的,我刚刚开始学习java,很抱歉我的英语不好:)干杯


创建
RowFilter.numberFilter(…)
时,需要指定表中要对其进行比较的列。如果不指定索引,默认值为所有列。

是的,我知道,但我认为它构造的过滤器是错误的。@Sniego,发布你的文章,使用你知道的信息演示问题,这样我们就不必猜测你可能在做什么或不在做什么。这就是问题所在,除了这个搜索函数,我什么都没有。此行筛选器只是我预测如何解决我的问题。但事实上,我只是不知道如何做分拣机基于最小最大值。如果你真的想,我可以张贴这个应用程序的代码,但只有搜索功能和表。
filters.add( RowFilter.numberFilter(ComparisonType.AFTER, Float.parseFloat(min)) );
filters.add( RowFilter.numberFilter(ComparisonType.BEFORE, Float.parseFloat(max)) );