[英]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.