简体   繁体   English

无法鼠标单击jtable中已在其他许多记录中进行搜索和过滤的记录

[英]Cannot mouse clicked on a record in the jtable that has been Search and filtered among many other records

I'm having an issue where, I cannot mouse click on a record in the jtable that has been searched and filtered. 我遇到一个问题,我无法在已搜索和过滤的jtable中的记录上单击鼠标。 Let's assume, I have many records and i want to search/filter the record first and then mouse clicked on the filtered record for it to appear in the textField Boxes for deletion process. 假设我有很多记录,我想先搜索/过滤记录,然后在过滤后的记录上单击鼠标,以使其出现在textField框中以供删除。 Thanks in Advance I need help badly. 在此先感谢,我急需帮助。

My Table Before 我的桌子之前

https://i.stack.imgur.com/bee30.png

My Table After Searched and filter, the row selected not appearing in the text field: 我的表格经过搜索和过滤后,所选行未出现在文本字段中:

https://i.stack.imgur.com/PeFhj.png

    private void deleteBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try {
        Connection conn= DriverManager.getConnection("jdbc:derby://localhost:1527/KDatabase","koushal","456");
        Statement st= conn.createStatement();
        int row= jTableStaff.getSelectedRow();
        String value=(jTableStaff.getModel().getValueAt(row,0).toString());
        String query="delete from STAFFS where ID="+value;
        PreparedStatement statement =conn.prepareStatement(query);
        statement.executeUpdate();
        DefaultTableModel model= (DefaultTableModel)jTableStaff.getModel();
        model.setRowCount(0);
        showStaff(); 
        JOptionPane.showMessageDialog(null,"Deletion Sucessfull ");

        } catch (SQLException ex) {
        Logger.getLogger(DeleteManagerInterface.class.getName()).log(Level.SEVERE, null, ex);
    }
}  

    private void jTableStaffMouseClicked(java.awt.event.MouseEvent evt) {                                         
    int i=jTableStaff.getSelectedRow();
    TableModel model=jTableStaff.getModel();
    ID_TxtField.setText(model.getValueAt(i,0).toString());
    Name_TxtField.setText(model.getValueAt(i,1).toString());
}                                        

private void SearchingIDTxtFieldKeyReleased(java.awt.event.KeyEvent evt) {                                                
    String userquery=SearchingIDTxtField.getText();
    DefaultTableModel model= (DefaultTableModel)jTableStaff.getModel();
    TableRowSorter<DefaultTableModel> sorter =new TableRowSorter<> (model);
    jTableStaff.setRowSorter(sorter);
    sorter.setRowFilter(RowFilter.regexFilter("(?i)"+userquery,0)); 
} 

do this 做这个

DefaultTableModel mt = (DefaultTableModel)table.getModel();
String a = (String) mt.getValueAt(table.getSelectedRow(), 0);
String b =(String) mt.getValueAt(table.getSelectedRow(), 1);
String c =(String) mt.getValueAt(table.getSelectedRow(), 2);

then set the strings to textfields. 然后将字符串设置为文本字段。

textfield.setText(a);
textfield1.setText(b);
textfield2.setText(c);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM