[英]Search in SQL table through JTextField key released with both UPPERCASE or LOWERCASE
我想通過NetBeans中發布的JTextField鍵在SQL表中搜索客戶名稱。
這是我發布的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 "
,它將顯示在表格中。 因此,請為此提供正確的代碼。
你必須使用這樣的東西,
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));
}
Esto leayudará: 如何在JTable上執行不區分大小寫的過濾器?
Pero sin mas nada,laexpresiónRegular que debe usar es "(?i)"+search
:
tr.setRowFilter(RowFilter.regexFilter("(?i)" + search));
除了不區分大小寫的搜索之外,理想情況下,對該列的排序也應不區分大小寫。
final int nameColumn = 1;
tr.setComparator(nameColumn, (lhs, rhs) -> ((String)lhs).compareToIgnoreCase((String) rhs));
上面的假設列為1,將其調整為正確的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.