Bonjour à tous,
Dans mon JTable je veux récupérer la colonne "prenom" qui est dans une table nommé "Personne" hors quand j'utilise la méthode qui permet de lire ce que contient mon autre table "opération" je veux que "prenom" de la table "personne" apparaisse.
dans la colonne "prenom" de la table opération j'ai quelque chose comme pkg.entite.Client@xxxxxx au lieu du prénom (pk.entité est le package et Client est la classe)
Avez-vous une solution pour faire apparaître le prénom ?
Voici mon code
Classe ModeleOperation2:
Classe Operation2 :
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
82
83
84
85
86
87
88
89 package pkg.controle.modele; import java.util.ArrayList; import java.util.Date; import javax.swing.table.AbstractTableModel; import pkg.entite.Operation2; public class ModeleOperation2 extends AbstractTableModel { private static final long serialVersionUID = 1L; Operation2 instanceOperation2 = new Operation2(); private ArrayList<Operation2> lesOpérations2 = instanceOperation2.getLesOpérations(); private final String[] lesTitres = {"Prénom", "Rib", "Date", "Mode Paiement", "Tiers", "Catégorie", "Montant"}; public int getRowCount() { return lesOpérations2.size(); } public int getColumnCount() { return lesTitres.length; } public String getColumnName(int columnIndex) { return lesTitres[columnIndex]; } public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0: return lesOpérations2.get(rowIndex).getPrenomOpe2(); case 1: return lesOpérations2.get(rowIndex).getRib(); case 2: return lesOpérations2.get(rowIndex).getDate(); case 3: return lesOpérations2.get(rowIndex).getModedepaiement(); case 4: return lesOpérations2.get(rowIndex).getTiers(); case 5: return lesOpérations2.get(rowIndex).getCategorie(); case 6: return lesOpérations2.get(rowIndex).getMontant(); default: return null; } } public Class<?> getColumnClass(int columnIndex){ switch(columnIndex){ case 0: return String.class; case 1: return String.class; case 2: return Date.class; case 3: return String.class; case 4: return String.class; case 5: return String.class; case 6: return double.class; default: return Object.class; } } public void creerMOD(Operation2 uneOperation2) { lesOpérations2.add(uneOperation2); fireTableRowsInserted(lesOpérations2.size() -1, lesOpérations2.size() -1); } public void supprimerMOD(int rowIndex) { lesOpérations2.remove(rowIndex); fireTableRowsDeleted(rowIndex, rowIndex); } public void modifierMOD(int firstRow, int lastRow, Operation2 uneOperation2) { lesOpérations2.set(firstRow, uneOperation2); fireTableRowsUpdated(firstRow, lastRow); } public void lireRecupMOD(ArrayList<Operation2> nouvellesOperations2){ lesOpérations2 = nouvellesOperations2; fireTableDataChanged(); } }
et la classe FenOperation2 (vue)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 package pkg.entite; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import javax.swing.JOptionPane; import pkg.controle.connexion.ControleConnexion; public class Operation2 { private Client prenom; private String rib; private Date date; private String modedepaiement; private String tiers; private String categorie; private double montant; private static Connection laConnexion = ControleConnexion.getConnexion(); private ArrayList<Operation2> lesOpérations = new ArrayList<Operation2>(); /* * Constructeur */ public Operation2( Client prenom,String rib, Date date, String modedepaiement, String tiers, String categorie, double montant) { this.prenom=prenom; this.rib=rib; this.date=date; this.modedepaiement=modedepaiement; this.tiers=tiers; this.categorie=categorie; this.montant=montant; } /* * Constructeur 2 */ public Operation2(){ lireRecupCRUD(); } /* * Constructeur 3 */ public Operation2(String rib){ this.rib = rib; } //Getters public String getRib() { return rib; } public Client getPrenomOpe2() { return prenom; } public Date getDate() { return date; } public String getModedepaiement() { return modedepaiement; } public String getTiers() { return tiers; } public String getCategorie() { return categorie; } public double getMontant() { return montant; } public ArrayList<Operation2> getLesOpérations() { return lesOpérations; } //setters public void setRib (String rib) { this.rib=rib; } public void setPrenom(Client prenom) { this.prenom=prenom; } public void setDate(Date date) { this.date=date; } public void setModedepaiement (String modedepaiement){ this.modedepaiement=modedepaiement; } public void setTiers(String tiers){ this.tiers=tiers; } public void setCategorie(String categorie) { this.categorie=categorie; } public void setMontant(double montant) { this.montant=montant; } /* * Lecture et récupération des enregistrements de la BD */ public void lireRecupCRUD() { try { Statement state = laConnexion.createStatement(); ResultSet rs = state.executeQuery( "SELECT Operation2.rib, Personne.prenom, Operation2.date, Operation2.modedepaiement, Operation2.tiers, Operation2.categorie, Operation2.montant " + "FROM Personne, Operation2 " + "WHERE Personne.rib = Operation2.rib"); while (rs.next()) { // Information client String prenom = rs.getString("prenom"); String rib = rs.getString("rib"); Date date = rs.getDate("date"); String modedepaiement = rs.getString("modedepaiement"); String tiers = rs.getString("tiers"); String categorie = rs.getString("categorie"); double montant = rs.getDouble("montant"); lesOpérations.add(new Operation2(new Client(prenom), rib, date, modedepaiement, tiers, categorie, montant)); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Problème rencontré : " + e.getMessage(), "Résultat", JOptionPane.ERROR_MESSAGE); } } }
Merci d'avance pour votre aide !
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 package pkg.dialogue; import java.awt.EventQueue; import java.awt.Font; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; import pkg.controle.modele.ModeleOperation2; public class FenOperation2 extends JFrame { private static final long serialVersionUID = 1L; private JPanel conteneur; private JLabel jl_titre_client; private JTable table = null; private JScrollPane jScrollPane = null; private ModeleOperation2 leModeleOperation2 = new ModeleOperation2(); private int num_ligne_modify = 0; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); FenOperation2 frame = new FenOperation2(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /* * Constructeur */ public FenOperation2() { conteneur = new JPanel(); conteneur.setBorder(new EmptyBorder(5, 5, 5, 5)); conteneur.setLayout(null); conteneur.add(getJLTitreClient()); conteneur.add(getJTable()); conteneur.add(getJScrollPane()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 1028, 616); setTitle("Opérations"); setLocationRelativeTo(null); setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/gestion/logoEclipse.png"))); setContentPane(conteneur); } private JLabel getJLTitreClient() { if (jl_titre_client == null) { jl_titre_client = new JLabel(); jl_titre_client.setText("Gestion des opérations"); jl_titre_client.setFont(new Font("Segoe UI", Font.BOLD, 24)); jl_titre_client.setBounds(292, 13, 428, 67); jl_titre_client.setIcon(new ImageIcon(getClass().getResource("/images/gestion/Database.png"))); } return jl_titre_client; } private JTable getJTable() { if (table == null) { table = new JTable(leModeleOperation2); // bulle d'aide : utilisation de code html dans Java table.setToolTipText("<html><img src=\""+ FenOperation2.class.getResource("/images/gestion/retour.png")+ "\" />Pour <b>modifier</b> unne ligne, vous devez <b>double-cliquez</b> sur <b>celle-ci</b></html>"); table.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent e) { if( e.getClickCount() == 2 ){ num_ligne_modify = table.getSelectedRow(); } } }); } return table; } private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setBounds(256, 272, 741, 252); jScrollPane.setViewportView(getJTable()); } return jScrollPane; } }
Partager