Невозможно щелкнуть мышью на записи в jtable, которая была Поиск и отфильтрована среди многих других записей - PullRequest
0 голосов
/ 27 октября 2018

У меня проблема с тем, что я не могу щелкнуть мышью по записи в jtable, которая была найдена и отфильтрована. Предположим, у меня много записей, и я хочу сначала найти / отфильтровать запись, а затем щелкнуть мышью по отфильтрованной записи, чтобы она появилась в текстовых полях для процесса удаления. Заранее спасибо, мне очень нужна помощь.

Моя таблица до

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

Моя таблица после поиска и фильтрации выбранная строка не отображается в текстовом поле:

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)); 
} 

1 Ответ

0 голосов
/ 27 октября 2018

сделать это

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);

затем установите строки в текстовые поля.

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