Применение и вызов 2 фильтров в фильтре JTable - PullRequest
0 голосов
/ 01 июля 2018

Я кодирую программу, которая применяет 2 фильтра к JTable, а затем дает мне результаты.

public void rowF(String one, String two){
    RowFilter<DefaultTableModel, Object> rf = null;
    List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
     filters.add(RowFilter.regexFilter(one, 0));
     filters.add(RowFilter.regexFilter(two, 1));
     rf = RowFilter.andFilter(filters);
   }

Это, как я понимаю, метод для этого. Но проблема в том, что когда я звоню, он не показывает результат.

Это код кнопки - Поиск.

String quer = jtxtsearch.getText();
String query = jtxtsearch2.getText();

String search = (String)jcbox.getSelectedItem();
String perch = (String)jcbox2.getSelectedItem();

if (search.equals("ID")){
   if (perch.equals("Date")){
         rowF(quer,query);
     }
}

1 Ответ

0 голосов
/ 26 июля 2018

Это тот, который работал для меня:

public void builtxsize (String one,String two){
  TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(jtablestate.getModel());
  jtablestate.setRowSorter(sorter);
  RowFilter<TableModel, Object> firstFiler = null;
  RowFilter<TableModel, Object> secondFilter = null;
  List<RowFilter<TableModel,Object>> filters = new 
  ArrayList<RowFilter<TableModel,Object>>();
  RowFilter<TableModel, Object> compoundRowFilter = null;
    try {
      firstFiler = RowFilter.regexFilter(one, indexofcolumn);
      secondFilter = RowFilter.regexFilter(two, indexofcolumn);
      filters.add(firstFiler);
      filters.add(secondFilter);
      compoundRowFilter = RowFilter.andFilter(filters); 
      } catch (java.util.regex.PatternSyntaxException e) {
          return;
      }
  sorter.setRowFilter(compoundRowFilter);
}

Вызов это можно сделать как:

String one = jtxt.getText();
String two = jtxt2.getText();
builtxsize(one,two);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...