Bonjour, j'ai bientôt fini mon programme qui récupère des informations dans une basse de données mais à pressent il me reste un problème à résoudre. J'ai fait une fonction qui a pour but de rechercher et afficher dans mon jTable des information en fonction d'un ou prénom saisis dans un jTextField.
Jusqu'ici tous va bien mais quand je fais une recherche et que sélectionne une ligne avec la fonction
MouseClicked(), il prend pas en compte ma recherche et m'affiche une autre information (j'ai une autre fonction qui récupère les information de la ligne lorsque je fais click dans mon tableau et les affiches dans d'autre jTexteField)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public void dpiTable(){
        ArrayList<Dpi> list = getDpiList();
        DefaultTableModel model = (DefaultTableModel)table.getModel();
        Object[] row= new Object[7];
        for(int i = 0; i < list.size(); i++)
        {
            row[0] = list.get(i).getNom();
            row[1] = list.get(i).getPrenom();
            row[2] = list.get(i).getMatricule();
            row[3] = list.get(i).getMotdepasse();            
            row[4] = list.get(i).getService();
            row[5] = list.get(i).getMnemonique(); 
            row[6] = list.get(i).getIdedge();            
            model.addRow(row);
        }         
    }
 
    public ArrayList<Dpi> getDpiList(){
        ArrayList<Dpi> dpiList = new ArrayList<Dpi>();
        Connection connection = getConnection();
        String query = "SELECT * FROM  `personnels` ";
        Statement st;
        ResultSet rs;
        try{
            st = connection.createStatement();
            rs = st.executeQuery(query);
            Dpi dpi; 
            while(rs.next()){
                dpi = new Dpi(rs.getString("nom"),rs.getString("Prenom"),rs.getInt("matricule"),rs.getString("motdepasse"),rs.getString("Service"),rs.getString("mnemonique"),rs.getInt("idedgenet"));
                dpiList.add(dpi);
            }
            }catch (Exception e) {
                e.printStackTrace();
            }
            return dpiList;
 
 
 
//Filtre de recherche 
 
    private void filtreNom() {
        TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(table.getModel());
        table.setRowSorter(rowSorter);
        String filterValue = rNom.getText().trim();
	if (filterValue.isEmpty()) {
            rowSorter.setRowFilter(null);
	}else {
            RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
            public boolean include(RowFilter.Entry<? extends Object, ? extends Object> entry) {
                String name = (String) entry.getValue(0); // colonne nom
                return startsWithIgnoreCase(name, filterValue);
            }
    private boolean startsWithIgnoreCase(String string, String prefix) {
	return string.toLowerCase().startsWith(prefix.toLowerCase());
    }
            };
	rowSorter.setRowFilter(filter);
	}
 
    }
 
 
    private void tableMouseClicked(java.awt.event.MouseEvent evt) {                                   
        try{
        int selectedRow =  table.getSelectedRow();
 
        DefaultTableModel model = (DefaultTableModel)table.getModel();
        nomN.setText(model.getValueAt(selectedRow, 0).toString());
        prenomP.setText(model.getValueAt(selectedRow, 1).toString());
        matriculeM.setText(model.getValueAt(selectedRow, 2).toString());
        passP.setText(model.getValueAt(selectedRow, 3).toString());
        serviceS.setText(model.getValueAt(selectedRow, 4).toString());
        dxcareD.setText(model.getValueAt(selectedRow, 5).toString());   
        edgenetE.setText(model.getValueAt(selectedRow, 6).toString());
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }  
 
 
    }