簡體   English   中英

通過同時使用UPPERCASE或LOWERCASE釋放的JTextField鍵在SQL表中搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM