j'essaye d'actualiser une jlist qui est contenu dans un jscollpane lorsque je clique sur un bouton mais ca ne marche pas.

Voici comment je procede:

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
 
public class Fentest extends JFrame {
 
	private static final long serialVersionUID = 1L;
	private JDesktopPane jDesktopPane = null;
	private JScrollPane jScrollPane = null;
	private JList jList = null;
	private JButton jButton = null;
 
	private JDesktopPane getJDesktopPane() {
		if (jDesktopPane == null) {
			jDesktopPane = new JDesktopPane();
			jDesktopPane.add(getJButton(), null);
 
		}
		return jDesktopPane;
	}
 
	private JScrollPane getJScrollPane(String[] data) {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new java.awt.Rectangle(42,29,259,167));
			jScrollPane.setViewportView(getJList(data));
		}
		return jScrollPane;
	}
 
	private JList getJList(String[] data) {
			jList = new JList(data);
		return jList;
	}
 
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new java.awt.Rectangle(385,211,120,32));
			jButton.setText("test");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String[] data = "two", "three", "four","one", "two", "three", "four"};
					jDesktopPane.add(getJScrollPane(data), null);
				}
			});
		}
		return jButton;
	}
 
	public static void main(String[] args) {
		Fentest myfen2 = new Fentest();
		myfen2.setVisible(true);
	}
 
	public Fentest() {
		super();
		initialize();
	}
 
	private void initialize() {
 
		this.setSize(529, 289);
		this.setContentPane(getJDesktopPane());
		this.setTitle("JFrame");
		String[] data = {"one","three", "one" "two", "three","four"};
		jDesktopPane.add(getJScrollPane(data), null);
	}
 
}
voici l'erreur:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.addImpl(Unknown Source)
at javax.swing.JLayeredPane.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Package_SystemExpert.Fentest$1.actionPerformed(Fentest.java:50)

voici la ligne en cause:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
jDesktopPane.add(getJScrollPane(data), null);

j'ai essayé de mettre un jDesktopPane.remove(getJScrollPane(data));avant jDesktopPane.add(getJScrollPane(data), null); mais ca ne change rien
Merci de votre aide!