我设法有一个能够过滤数据库中的记录的代码,在我的jtable中显示结果。下面是代码:
try{
TableRowSorter<TableModel> sorter = new TableRowSorter<>(((DefaultTableModel)myTable.getModel()));
sorter.setRowFilter(RowFilter.regexFilter(JTextField.getText()));
myTable.setRowSorter(sorter);
}catch(Exception e){
e.getMessage();
}
问题是,当我点击我搜索过的所选行记录时,我无法将其数据输入到所需的文本字段中。
table_click的方法如下:
try{
int row = myTable.getSelectedRow();
String table_click=(myTable.getModel().getValueAt(row,0).toString());
String sgl="select * from employees where Name='"+table_click+"'";
pst=conn.prepareStatement(sgl);
rs=pst.executeQuery();
if(rs.next()){
String a = rs.getString("Name");
JTextField.setText(a);
}
}catch(SQLException | NumberFormatException e){
e.getMessage();
}finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
这样做只是选择数据库第一行中的记录而不是搜索记录 请问当我使用TableRowSorter和rowFilter时,如何单击我的jTable来仅选择我搜索过的记录而不是数据库中的第一条记录?谢谢。