Bonjour,

J'ai fait dans une de mes vues, 2 méthodes. Une qui affiche la partie haute avec une tableau, et la seconde en bas qui affiche des informations. En faite lors d'un double clique sur une ligne du tableau la partie du bas s'affiche, et le tableau bien entendu reste visible.

La souci que j'ai c'est que je n'arrive pas à faire apparaitre les 2 ensembles. Ou l'un ou l'autre, pas les 2 .

En fait dans mon controller j'ai une méthode qui traite la tableau le rempli et j'appel ma vue auquel je retourne mon tableau. Mais l'ai placé mon MouseListener dans cette méthode, et lorsqu'on clique 2 fois, il rentre dans mon MouseListener et ne retourne donc pas mon tableau. Je ne comprends pas trop ce qu'il se passe.

Voici mon controller :
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
 
public class C_Detail_Materiel_Mouvement {
 
//========================================================
//					DONNEES MEMBRES				      |
//========================================================
	private JTable tabMouvement;
	private JPanel detMouv;
	private int idMateriel;
	M_Detail_Materiel_Mouvement affMouveMateriel = null;
	V_Detail_Mouvement_Onglet affOngletMouv = null;
 
//====================================================
//				     CONSTRUCTEURS			               |
//====================================================
	public C_Detail_Materiel_Mouvement(int idMateriel){
		this.idMateriel = idMateriel;
 
		affMouveMateriel = new M_Detail_Materiel_Mouvement(V_Main.conn.getConnection(),idMateriel);
	}
 
 
	//===============================================================
	//					AUTRES METHODES								|
	//===============================================================
 
	//------------------------------------------------------------------------------------------------------------------------	
	//Méthode qui est appellée lors de l'arrivé sur l'onglet Mouvement dans le détail d'un matériel
	public JPanel C_affMouvement(){
 
 
		//Définition des titres des différentes colonnes
		String[] titreCol = {"N°Mouvement","Client", "Nature Mouvement", "Date début","Date fin"};
 
		//Appel du modèle de table
		A_TableMouvementMateriel absMouv = null;
 
		//Attribution au model de table des différentes données retournées par le modèle sur le mouvement
		try {
			absMouv = new A_TableMouvementMateriel(affMouveMateriel.requeteMouvementMateriel(), titreCol);
		} catch (SQLException e1) {
			e1.printStackTrace();
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
 
		//Affectation au JPanel affIntervention une JTable avec son modèle par défaut
		tabMouvement = new JTable(absMouv);
 
		//Appel de la classe O_TableComponent, nouveau modèle de table
		//tabMouvement.setDefaultRenderer(String.class, new O_TableComponent());		
 
		//Tri possible en cliquant sur le header
		tabMouvement.setAutoCreateRowSorter(true);
 
		//Définition d'un hauteur de ligne
		tabMouvement.setRowHeight(22);
		tabMouvement.getTableHeader().setReorderingAllowed(false);
		tabMouvement.getTableHeader().setResizingAllowed(false);		
 
		//Appel de la vue qui affiche le tbleau des différents mouvement
		affOngletMouv = new V_Detail_Mouvement_Onglet(tabMouvement);	
 
		//Condition si aucune intervention n'a été effectué sur le matériel
		if(affMouveMateriel.getNb_result() != 0){
 
			//Si un double clique a lieu sur une des lignes du tableau appel de la méthode dblClick_MouvTab
			tabMouvement.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e){
					if (e.getClickCount() == 2){
						dblClick_MouvTab(Integer.parseInt((String) tabMouvement.getValueAt(tabMouvement.getSelectedRow(), 0).toString()));
					}	
				}
			} );
 
			//Retourne le Panel avec le tableau de données, uniquement si celui-ci contient des infos
			return affOngletMouv.OngletMouvement();
		} else {
			//Retourne le Panel avec un message indiquant qu'aucune info n'est enregistrées pour ce matériel
			return affOngletMouv.OngletMouvement_Null();
		}		
	}
	//------------------------------------------------------------------------------------------------------------------------
 
	//------------------------------------------------------------------------------------------------------------------------
	//Méthode qui est appellée si un double clique survient dans le tableau
	private JPanel dblClick_MouvTab(int numMouv) {
 
		//Appel de la vue qui affiche le tbleau des différents mouvement
		V_Detail_Mouvement_Onglet affDetOngletMouv = new V_Detail_Mouvement_Onglet();	
 
		try {
			detMouv = affDetOngletMouv.OngletMouvement_Detail(affMouveMateriel.requeteMouvementDetail(numMouv));
		} catch (SQLException e) {	
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
 
		return detMouv;
	}
	//------------------------------------------------------------------------------------------------------------------------
}
Et voici ma vue :
La 1er méthode est mon tableau, et la seconde et le Panel que je souhaite affiché si double clique dans le tableau.
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
 
public class V_Detail_Mouvement_Onglet {
	//===============================================================
	//					DONNEES MEMBRES								|
	//===============================================================
..........
	//===============================================================
	//						CONSTRUCTEURS							|
	//===============================================================
	public V_Detail_Mouvement_Onglet(JTable tabMouvement){
		this.tabMouvement = tabMouvement;
	}
 
	public V_Detail_Mouvement_Onglet(){}
 
 
 
	//===============================================================
	//					AUTRES METHODES								|
	//===============================================================
 
	//--------------------------------------------------------------------------------------------------------------------------
	//Méthode qui affiche le JTable dans la partie haute du Panel panMouvement
	public JPanel OngletMouvement(){
		this.tabMouvement = tabMouvement;
 
		//Définition des différrents paramètres pour le Panel principal
		panMouvement.setBackground(new Color(P_ColorBackground.getR(),P_ColorBackground.getG(),P_ColorBackground.getB()));
		panMouvement.setLayout(new BorderLayout(30,30));
		panMouvement.setBorder(new EmptyBorder(10, 10, 10, 10));
 
		panMouvement.add(panHautMouv, BorderLayout.NORTH);
		panHautMouv.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
 
		scrollMouv = new JScrollPane(tabMouvement);			
		scrollMouv.setPreferredSize(new Dimension(800,150));
 
		panHautMouv.add(scrollMouv);
		panHautMouv.setBackground(new Color(P_ColorBackground.getR(),P_ColorBackground.getG(),P_ColorBackground.getB()));
 
		return panMouvement;
	}
	//--------------------------------------------------------------------------------------------------------------------------
 
 
	//--------------------------------------------------------------------------------------------------------------------------
	//Méthode qui affiche le détail d'un mouvement lors d'un double clique sur une des lignes du JTable
	public JPanel OngletMouvement_Detail(M_Detail_Materiel_Mouvement_Tab infoMouv){
 
		panBasMouv.setBorder(new EmptyBorder(0, 0, 0, 0));
		panBasMouv.setLayout(new BorderLayout(0, 0));
 
		panDetMouvH.setBorder(new MatteBorder(0, 0, 1, 0, (Color) new Color(0, 0, 0)));
 
		panBasMouv.add(panDetMouvH, BorderLayout.NORTH);
		panDetMouvH.setLayout(new GridLayout(0, 3, 0, 0));
		panNumMouv.setBorder(new EmptyBorder(0, 5, 10, 100));
 
		panDetMouvH.add(panNumMouv);
		panNumMouv.setLayout(new BorderLayout(0, 0));
		panNumMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreNumMouv, 15), BorderLayout.WEST);
		panNumMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(String.valueOf(infoMouv.getNum_mouvement())), 13), BorderLayout.EAST);
		panClientMouv.setBorder(new EmptyBorder(0, 10, 10, 100));
		panDetMouvH.add(panClientMouv);
		panClientMouv.setLayout(new BorderLayout(0, 0));
		panClientMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreClientMouv, 15), BorderLayout.WEST);
		panClientMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(infoMouv.getNom_client()), 13), BorderLayout.EAST);
		lblTitreClientMouv.setBorder(new EmptyBorder(0, 10, 0, 50));
		panDateMouv.setBorder(new EmptyBorder(0, 10, 10, 50));
 
		panDetMouvH.add(panDateMouv);
		panDateMouv.setLayout(new BorderLayout(0, 0));
		panDateMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreDebMouv, 15), BorderLayout.WEST);
		panDateMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(P_Methodes_Utiles.dateFormatDate(infoMouv.getDate_debut(), "dd MMM yy")), 13), BorderLayout.EAST);
 
		panBasMouv.add(panDetMouvC, BorderLayout.CENTER);
		panDetMouvC.setLayout(new GridLayout(0, 2, 0, 0));
		panDetailMouvG.setBorder(new EmptyBorder(0, 5, 10, 0));
 
		panDetMouvC.add(panDetailMouvG);
		panDetailMouvG.setLayout(new BorderLayout(0, 0));
		panDetMouvGHaut.setBorder(new EmptyBorder(10, 0, 0, 50));
 
		panDetailMouvG.add(panDetMouvGHaut, BorderLayout.NORTH);
		panDetMouvGHaut.setLayout(new BorderLayout(0, 0));
		panHoraDeb.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetMouvGHaut.add(panHoraDeb, BorderLayout.NORTH);
		panHoraDeb.setLayout(new BorderLayout(0, 0));
		lblTitreHoraDeb.setHorizontalAlignment(SwingConstants.LEFT);
		panHoraDeb.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreHoraDeb, 15), BorderLayout.WEST);
		panHoraDeb.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  new JLabel(String.valueOf(infoMouv.getHeure_debut()+"h")), 13), BorderLayout.EAST);
 
		panHoraDeb.add(sepHoraDeb, BorderLayout.SOUTH);
		panHoraFin.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetMouvGHaut.add(panHoraFin, BorderLayout.CENTER);
		panHoraFin.setLayout(new BorderLayout(0, 0));
		lblTitreHoraFin.setHorizontalAlignment(SwingConstants.LEFT);
		panHoraFin.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreHoraFin, 15), BorderLayout.WEST);
		panHoraFin.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(String.valueOf(infoMouv.getHeure_fin()+"h")), 13), BorderLayout.EAST);
		lblHoraFin.setBorder(null);		
 
		panHoraFin.add(sepHoraFin, BorderLayout.SOUTH);
		panMontMouv.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetMouvGHaut.add(panMontMouv, BorderLayout.SOUTH);
		panMontMouv.setLayout(new BorderLayout(0, 0));
		panMontMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreMontant, 15), BorderLayout.WEST);
		panMontMouv.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(String.valueOf(infoMouv.getMontant()+"€")), 13), BorderLayout.EAST);
 
		panMontMouv.add(sepMontant, BorderLayout.SOUTH);
		panDetMouvGBas.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetailMouvG.add(panDetMouvGBas, BorderLayout.SOUTH);
		panDetMouvGBas.setLayout(new BorderLayout(0, 0));
 
		panDetMouvGBas.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreCondition, 15), BorderLayout.NORTH);
		txtCondition.setBorder(new MatteBorder(0, 0, 0, 1, (Color) new Color(0, 0, 0)));
		txtCondition.setText(infoMouv.getCondition());
		panDetMouvGBas.add(txtCondition, BorderLayout.CENTER);
		txtCondition.setLineWrap(true);
 
		panDetailMouvD.setBorder(new EmptyBorder(10, 10, 10, 5));
		panDetMouvC.add(panDetailMouvD);
		panDetailMouvD.setLayout(new BorderLayout(0, 0));
 
		panDetailMouvD.add(panDetMouvDHaut, BorderLayout.NORTH);
		panDetMouvDHaut.setLayout(new BorderLayout(0, 0));
		panDateDebut.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetMouvDHaut.add(panDateDebut, BorderLayout.NORTH);
		panDateDebut.setLayout(new BorderLayout(0, 0));
		panDateDebut.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreDateDebut, 15), BorderLayout.WEST);
		panDateDebut.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(P_Methodes_Utiles.dateFormatDate(infoMouv.getDate_debut(), "dd MMM yy")), 13), BorderLayout.EAST);
 
		panDateDebut.add(sepDateDebut, BorderLayout.SOUTH);
		panDateFin.setBorder(new EmptyBorder(10, 0, 10, 0));
 
		panDetMouvDHaut.add(panDateFin, BorderLayout.SOUTH);
		panDateFin.setLayout(new BorderLayout(0, 0));
		panDateFin.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreDateFin, 15), BorderLayout.WEST);
 
		panDateFin.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(P_Methodes_Utiles.dateFormatDate(infoMouv.getDate_fin(), "dd MMM yy")),13), BorderLayout.EAST);
 
		panDateFin.add(sepDateFin, BorderLayout.SOUTH);
 
		panDetailMouvD.add(panDetMouvDBas, BorderLayout.CENTER);
		panDetMouvDBas.setLayout(new BorderLayout(0, 0));
		lblTitreOption.setBorder(new EmptyBorder(10, 0, 10, 0));
		panDetMouvDBas.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreOption, 15), BorderLayout.NORTH);		
		txtOption.setText("test");
		txtOption.setLineWrap(true);
 
		panDetMouvDBas.add(txtOption, BorderLayout.CENTER);
		panDetMouvB.setBorder(new MatteBorder(1, 0, 0, 0, (Color) new Color(0, 0, 0)));
 
		if(infoMouv.getNum_proposition() != 0){
			panBasMouv.add(panDetMouvB, BorderLayout.SOUTH);
			panDetMouvB.setLayout(new GridLayout(1, 3, 20, 20));
			panDetMouvB.add(panNumPropo);
			panNumPropo.setBorder(new EmptyBorder(10, 10, 0, 10));
			panNumPropo.setLayout(new BorderLayout(0, 0));
			panNumPropo.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitrePropo, 15), BorderLayout.WEST);
 
 
			panNumPropo.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(String.valueOf(infoMouv.getNum_proposition())),13), BorderLayout.EAST);
			panDetMouvB.add(panDatePropo);
			panDatePropo.setBorder(new EmptyBorder(10, 10, 0, 50));
			panDatePropo.setLayout(new BorderLayout(0, 0));
 
			panDatePropo.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(P_Methodes_Utiles.dateFormatDate(infoMouv.getDate_proposition(), "dd MMM yy")),13), BorderLayout.EAST);
			panDatePropo.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreDatePropo, 15), BorderLayout.WEST);
			panDetMouvB.add(panEmprunt);
			panEmprunt.setBorder(new EmptyBorder(10, 10, 0, 50));
			panEmprunt.setLayout(new BorderLayout(0, 0));
			panEmprunt.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTitre.getR(),P_ColorFontTitre.getG(),P_ColorFontTitre.getB()),  lblTitreNumEmprunt, 15), BorderLayout.WEST);
 
			panEmprunt.add(P_Methodes_Utiles.changeText(new Color(P_ColorFontTexte.getR(),P_ColorFontTexte.getG(),P_ColorFontTexte.getB()),  new JLabel(String.valueOf(infoMouv.getNum_emprunt())),13), BorderLayout.EAST);
		} else {
			OngletMouvement_Propo_Null();
		}
 
		//Ajout au Panel principal, du Panel qui contient toutes les infos d'un mouvement
		panMouvement.add(panBasMouv, BorderLayout.SOUTH);
 
		//Retourne le Panel principal 
		return panMouvement;
 
	}
	//--------------------------------------------------------------------------------------------------------------------------
 
 
	//--------------------------------------------------------------------------------------------------------------------------
	//Méthode qui informe qu'aucun mouvement n'existe pour ce matériel
	public JPanel OngletMouvement_Null(){
		//Définition des différrents paramètres pour le Panel principal
		panMouvement.setBackground(new Color(P_ColorBackground.getR(),P_ColorBackground.getG(),P_ColorBackground.getB()));
		panMouvement.setLayout(new BorderLayout(30,30));
		panMouvement.setBorder(new EmptyBorder(10, 10, 10, 10));
 
		panMouvement.add(P_Methodes_Utiles.changeText(Color.RED, lblMouvementNull, 17));
 
		return panMouvement;
	}
	//--------------------------------------------------------------------------------------------------------------------------
 
 
	//--------------------------------------------------------------------------------------------------------------------------
	//Méthode qui informe qu'aucune proposition commerciale n'a été effectuée pour ce mouvement
	public JPanel OngletMouvement_Propo_Null(){
		panBasMouv.add(panDetMouvB, BorderLayout.SOUTH);
		panDetMouvB.setLayout(new FlowLayout());
 
		panDetMouvB.add(P_Methodes_Utiles.changeText(Color.RED, lblMouvementPropoNull, 17));
 
		return panDetMouvB;
	}
	//--------------------------------------------------------------------------------------------------------------------------
 
}
J'espère m'être bien expliqué sur mon problème.

Auriez vous une idée du pourquoi je n'arrive pas a affiché le Panel du bas en cliquant sur celui du haut?

En faites on dirait qu'une fois qu'il rentre dans mon MouseListener, il ne me va plus jusqu'en bas de ma méthode, et par conséquent ne me retourne plus ma vue. Il affiche juste ce qu'il y a dans ma méthode et basta

Par avance merci