Ошибка фильтрации Jtable

У меня есть Jtable, и я хочу отфильтровать его на основе записей пользователей. Я написал этот код:

data_table = new JTable(model); // create data table

data_table.setModel(new DefaultTableModel(pin, colNames)); // fill jtable
model = new DefaultTableModel(pin, colNames); // create a table model

final TableRowSorter<TableModel> sorter;

sorter = new TableRowSorter<TableModel>(model);

data_table.setRowSorter(sorter);

и при нажатии у меня есть этот код:

String text = filter_txtf.getText(); // i get the user entry from a text field
    if (text.length() == 0) {
     sorter.setRowFilter(null);
      //data_table.setRowSorter(sorter);  
    } else {
      try {
        sorter.setRowFilter(
            RowFilter.regexFilter(text));
        //data_table.setRowSorter(sorter);  
      } catch (PatternSyntaxException pse) {
        System.err.println("Bad regex pattern");
     }
   }

Проблема в том, что при щелчке ничего не происходит, я отлаживаю свою программу, и «выполнение действия» вызывается нормально. Что не так с моим кодом?


person user1005633    schedule 20.05.2013    source источник


Ответы (1)


Базовый код выглядит разумным, но мы не можем видеть контекст его использования, поскольку вы не указали SSCCE. Нет необходимости в операторе if/else, просто всегда сбрасывайте фильтр строк.

См. раздел руководства Swing по Сортировка и фильтрация. для рабочего примера.

person camickr    schedule 20.05.2013