JTable пользовательский RowFilter?

Примеры RowFilter только сравнивают текст, но как фильтровать строки, связанные с определенными свойствами?

мой класс модели данных

class MyDataModel
{
    private ArrayList<MyFile> data; // for the rows data 

...

class Myfile
{
   private boolean error; // file name issues
   private boolean ignored; // file ignored for process
   private boolean exception; // file processed no matter other conditions
...

так как мне отфильтровать строки, где MyFile имеет какое-то свойство true (или даже более сложные тесты в этих полях)

Спасибо

2 ответа

Решение

Что вы подразумеваете под сравнением текста? Вы добавили свой фильтр и переопределенный метод include?

boolean include(RowFilter.Entry<? extends M,? extends I> entry) 

Документ API здесь RowFilter сам объясняет, как вы можете фильтровать на основе целого числа / числа или на основе любого типа свойства

    RowFilter<Object,Object> filter = new RowFilter<Object,Object>() 
    {
       public boolean include(Entry<? extends Object, ? extends Object> entry) 
       {
           int rowID=(Integer)entry.getIdentifier();
           FilesTableModel data=(FilesTableModel) entry.getModel();
           return data.isVisible(rowID);
       }
    };
    TableRowSorter<FilesTableModel> sorter = new TableRowSorter<FilesTableModel>(data);
    sorter.setRowFilter(filter);
    table.setRowSorter(sorter);
Другие вопросы по тегам