Bonjour,
Ca fait des heures que j'arrive pas à mettre une pauv' scrollPane à une JList, je deviens fou!

Ma classe :

J'apelle ce panel dans un jtabbedpane en faisant ZonePanel.getZonePanel();

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
package affichage;
 
import gestion.Controleur;
import gestion.FormatageHelper;
import gestion.Intermediaire;
 
import java.awt.Color;
import java.io.IOException;
import java.util.ArrayList;
 
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
 
public class ZonePanel extends JComponent {
 
	/**
         * Classe du JPanel qui concerne une zone géographique
         */
	private static final long serialVersionUID = 1L;
	/**
         * ID
         */
 
	private static JPanel panelZone = null;
	private JList listeErreurs = null;
	private JList reponseRegDep = null;
	private JLabel label = null;
	private JList listeCommunes = null;
	private JLabel labelRecherche = null;
 
	public ZonePanel() throws IOException {
		final Intermediaire service = new Intermediaire();
		final Controleur controleur = new Controleur();
		controleur.setService(service);
 
 
		// Création du panel
		panelZone = new JPanel(false);
 
		// Définition du gestionnaire d'interface
		panelZone.setLayout(null);
 
		// Déclaration de la zone de notification d'erreurs
		listeErreurs = FormatageHelper.FormatageZoneNotifications(panelZone);
 
		// Prémière ligne, le titre
		FormatageHelper.FormatageTitre(panelZone,
				"Informations sur les communes");
 
		// Troisième ligne informations sur un département par son numéro
		label = new JLabel("Nom de la commune :");
		label.setBounds(30, 55, 125, 20);
		panelZone.add(label);
 
		final JTextField champRegDep = new JTextField();
		champRegDep.setBounds(165, 55, 140, 21);
		panelZone.add(champRegDep);
 
		final JSlider slider = new JSlider(0, 50, 0);
		slider.setBorder(BorderFactory.createTitledBorder("Rayon de la zone"));
		slider.setMajorTickSpacing(10);
		slider.setMinorTickSpacing(5);
		slider.setPaintTicks(true);
		slider.setPaintLabels(true);
 
		slider.setBounds(320, 33, 220, 60);
		panelZone.add(slider);
 
		// Formatage zone de réponses
		reponseRegDep = FormatageHelper.FormatageZoneReponses(panelZone);
 
		panelZone.add(getLabelRecherche());
		panelZone.add(new JScrollPane(getListeCommunes()));
 
 
		labelRecherche.setVisible(false);
 
 
		slider.addChangeListener((new ChangeListener() {
			@Override
			public void stateChanged(ChangeEvent c) {
				// On récupère le slider source
				JSlider slider = (JSlider) c.getSource();
				ArrayList<String> listeCommunesProches = new ArrayList<String>();
 
				// On formate le champ
				String champTexte = FormatageHelper.FormatageCode(champRegDep
						.getText());
 
				// On instancie les listes de réponses et erreurs
				DefaultListModel listReponses;
				DefaultListModel listErreurs;
 
				// Si le slider n'est pas entrain d'être ajusté, et qu'il y'a
				// aucune erreur, et que la valeur du slider n'est pas zéro
 
				if (!slider.getValueIsAdjusting()
						&& controleur.validationSyntaxiqueCommune(champTexte) == null
						&& slider.getValue() != 0) {
					try {
						getListeCommunes().setVisible(true);
					} catch (IOException e1) {
						e1.printStackTrace();
					}
					getLabelRecherche().setVisible(true);
					// Remise à zéro des listes
					listReponses = new DefaultListModel();
					listErreurs = new DefaultListModel();
					int rayon = slider.getValue();
					try {
						// On récupère la liste des communes proches
						listeCommunesProches = service.listeComProche(
								champTexte, rayon);
					} catch (IOException e) {
						e.printStackTrace();
					}
					// On affiche quelques données à droite
					listReponses = FormatageHelper.FormatageReponseUnique(
							listReponses, "Rayon de la zone", String
									.valueOf(rayon)
									+ " kms");
					listReponses = FormatageHelper.FormatageReponseUnique(
							listReponses, "Nombre de communes", String
									.valueOf(listeCommunesProches.size()));
					listReponses = FormatageHelper.FormatageReponseUnique(
							listReponses, "Commune la plus proche",
							listeCommunesProches.get(0));
					listReponses = FormatageHelper.FormatageReponseUnique(
							listReponses, "Commune la plus éloignée",
							listeCommunesProches.get(listeCommunesProches
									.size() - 1));
					DefaultListModel listeTemp = new DefaultListModel();
					for (String com : listeCommunesProches){
						listeTemp.addElement(com);
					}
					listeCommunes.setVisible(true);
					listeCommunes.setModel(listeTemp);
					reponseRegDep.setModel(listReponses);
					listeErreurs.setModel(listErreurs);
				} else {
					// Sinon on affiche l'erreur en bas et on efface la zone de
					// réponse
					listErreurs = new DefaultListModel();
					listReponses = new DefaultListModel();
					listErreurs.addElement(controleur
							.validationSyntaxiqueCommune(champTexte));
					reponseRegDep.setModel(listReponses);
					listeErreurs.setModel(listErreurs);
				}
			}
		}));
 
	}
 
	/**
         * @return le panel de zone
         * @throws IOException
         */
	public static JPanel getZonePanel() throws IOException {
		if (panelZone == null) {
			new ZonePanel();
		}
		return panelZone;}
 
	/**
         * @return la Jlist pour afficher les villes
         * @throws IOException 
         */
	public JList getListeCommunes() throws IOException {
		if (listeCommunes == null){
			listeCommunes = new JList();
			listeCommunes.setBorder(BorderFactory.createLineBorder(Color.lightGray));
			listeCommunes.setBounds(30, 120,500,400);
			listeCommunes.setLayoutOrientation(JList.VERTICAL_WRAP);
			listeCommunes.setVisibleRowCount(-1);
			listeCommunes.setVisible(true);
		}
		return listeCommunes;
	}
 
	/**
         * @param listeCommunes
         */
	public void setListeCommunes(JList listeCommunes) {
		this.listeCommunes = listeCommunes;
	}
 
	/**
         * @return le label de recherche a cote de la combobox
         */
	public JLabel getLabelRecherche() {
		if ( labelRecherche == null){
			labelRecherche = new JLabel("Voici la liste des villes dans ce rayon ");
			labelRecherche.setVisible(true);
			labelRecherche.setBounds(30,80,300,20);
		}
		return labelRecherche;
	}
 
	/**
         * @param labelRecherche
         */
	public void setLabelRecherche(JLabel labelRecherche) {
		this.labelRecherche = labelRecherche;
	}
 
}
quand je fais panelZone.add(new JScrollPane(getListeCommunes()); ça n'affiche strictement rien!