Поиск в таблице SQL с помощью ключа JTextField, выпущенного с помощью UPPERCASE или LOWERCASE - PullRequest
0 голосов
/ 01 марта 2019

Я хочу найти имя клиента в таблице SQL с помощью ключа JTextField, выпущенного в NetBeans.

Вот мой выпущенный код ключа JTextField:

DefaultTableModel table = (DefaultTableModel)jTable1.getModel(); 
String search = jTextField1.getText(); 
TableRowSorter<DefaultTableModel> tr = new  TableRowSorter<DefaultTableModel>(table);

jTable1.setRowSorter(tr);
tr.setRowFilter(RowFilter.regexFilter(search));

Например, если я хочунайдите имя клиента " RoNaldo ", когда я напишу начальное слово вот так " ronaldo ", тогда оно не работает.На самом деле, когда пишете одно и то же слово, как это " RoNaldo ", оно будет показано в таблице.Поэтому, пожалуйста, предоставьте мне правильный код для этого.

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Esto le ayudará: Как я могу выполнить нечувствительный к регистру фильтр для JTable?

Pero sin mas nada, la expresión регулярный que debe usar es "(?i)"+search:

tr.setRowFilter(RowFilter.regexFilter("(?i)" + search));
0 голосов
/ 01 марта 2019

Помимо поиска без учета регистра, сортировка по этому столбцу в идеале должна быть без учета регистра.

final int nameColumn = 1;
tr.setComparator(nameColumn, (lhs, rhs) -> ((String)lhs).compareToIgnoreCase((String) rhs));

Выше предполагается, что столбец равен 1, адаптируйте его к правильному.

0 голосов
/ 01 марта 2019

Вы должны использовать что-то вроде этого,

DefaultTableModel table = (DefaultTableModel)jTable1.getModel();
TableRowSorter<DefaultTableModel> tr = new  TableRowSorter<DefaultTableModel>(table);

String search = jTextField1.getText().toLowerCase();
if (search.trim().length() == 0) {
      tr.setRowFilter(null);
   } else {
      tr.setRowFilter(RowFilter.regexFilter("(?i)" + search));
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...