andFilter не показывает все результаты поиска jtable java - PullRequest
0 голосов
/ 02 мая 2018

У меня есть jtable, и я хочу отфильтровать его содержимое, его вид работы, но он фильтрует только одну строку.

В основном я хочу, чтобы он отображал каждую строку, соответствующую критериям поиска (например, при вводе имени, фамилии двух разных людей будут отображаться две разные строки), но он либо показывает одну, либо ни одной вообще

public void searchCriteria(){

DefaultTableModel table = (DefaultTableModel) tblStudentDetails.getModel ();

    String searchiD = txtId.getText();
    String searchfName = txtFName.getText();
    String searchlName = txtLName.getText();
    String searchGender = txtGender.getText();
    String searchAddress = txtAddress.getText();
    String searchPostCode = txtPostCode.getText();
    String searchCompSci = txtCompSci.getText();
    String searchMaths = txtMaths.getText();
    String searchEnglish = txtEnglish.getText();

      ArrayList<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(9);
      TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>(table);
      tblStudentDetails.setRowSorter(tr);

      filters.add(RowFilter.regexFilter(searchiD, 0));
      filters.add(RowFilter.regexFilter(searchfName, 1));
      filters.add(RowFilter.regexFilter(searchlName, 2));
      filters.add(RowFilter.regexFilter(searchGender, 3));
      filters.add(RowFilter.regexFilter(searchAddress, 4));
      filters.add(RowFilter.regexFilter(searchPostCode, 5));
      filters.add(RowFilter.regexFilter(searchCompSci, 6));
      filters.add(RowFilter.regexFilter(searchMaths, 7));
      filters.add(RowFilter.regexFilter(searchEnglish, 8));
      tr.setRowFilter(RowFilter.andFilter(filters));

}

Моя программа выглядит так:

Если ввести 1 (в текстовом поле ID) и V (в текстовом поле Имя), первые две строки должны появиться) Пожалуйста, дайте мне знать, что я делаю не так! спасибо!

...