2016-04-13 18 views
0

JTable'ı birden çok sütun üzerinde f.E.Java RowFilter çoklu sütunlarda

 
Column1 Column2 
    a  1 
    b  2 
    c  2 

Ben Column1 = b tarafından ve Sütun2 = 2 tarafından bu tabloyu sıralamak istiyorum.

MyTableModel model = new MyTableModel(); 
sorter = new TableRowSorter<MyTableModel>(model); 
table = new JTable(model); 
table.setRowSorter(sorter); 

... 

private void newFilter() { 
    RowFilter<MyTableModel, Object> rf = null; 
    //If current expression doesn't parse, don't update. 
    try { 
     rf = RowFilter.regexFilter(filterText.getText(), 0); 
    } catch (java.util.regex.PatternSyntaxException e) { 
     return; 
    } 
    sorter.setRowFilter(rf); 
} 

Birden çok sütunu nasıl sıralayabiliriz?

cevap

2

Eğer RowFilter.AndFilter oluşturmak ve size gerekli olan tüm filtreleri geçirebilirsiniz:

List<RowFilter<M, O>> listOfFilters = new ArrayList<>(); 
... add filters into list 
RowFilter.andFilter(listOfFilters); 
+0

, Örnek için "(" veya ")" içeren bir Diziyi filtrelemem dışında: "Araba (Porsche)". Bununla nasıl başa çıkılır? – user1104836

+1

Çözüldü: Pattern.quote (filterValue) – user1104836

0

Basitçe RowFilter gelen parametreyi "0" kaldır tüm sütunları sıralamak için: Mükemmel çalışıyor

rf = RowFilter.regexFilter(filterText.getText()); 
İlgili konular