簡體   English   中英

Java JTable在兩個值之間進行行排序

[英]Java JTable rowsorter between two values

我正在嘗試在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”,並且僅顯示介於最小,最大和等於它們之間的該記錄。 假設從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);

但這不起作用。 有誰知道如何做到這一點? 我開始放棄...啊哈,我表中的數據是對象,我正在使用默認表模型。 如您所見,我剛剛開始學習Java,對我的英語不好深感抱歉:)干杯。

filters.add( RowFilter.numberFilter(ComparisonType.AFTER, Float.parseFloat(min)) );
filters.add( RowFilter.numberFilter(ComparisonType.BEFORE, Float.parseFloat(max)) );

創建RowFilter.numberFilter(...) ,需要指定要在表中進行比較的列。 如果不指定索引,則默認為所有列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM