Bonjour,

Dans l'interface de mon appli, j'affiche 4 panels (1 au nord, 1 à l'ouest, 1 au centre et 1 au sud).

Dans le panel de l'ouest, j'ai différents boutons. J'aimerais que quand je clique sur un des boutons, le panel du centre change.

J'utilise en fait des SimpleInternalFrame de la librairies JGoodies.

Dans la métohde actionPerformed, j'appelle repaint() et j'ai redéfini la méthode paint() pour qu'elle appelle ma méthode qui construit le panel.

Voici le code de ma classe:

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
public class GUIManager extends JFrame implements ActionListener {
 
	private static final long serialVersionUID = 1L;
 
	public static final int MEMBRES = 1;
	public static final int FAMILLES  = 2;
 
	private int currentList = MEMBRES;
 
	// Composants
	private SimpleInternalFrame m_selectionsFrame;
	private SimpleInternalFrame m_membresFrame;
	private SimpleInternalFrame m_famillesFrame;
 
	private JPanel m_barreEtat;
 
	private JButton m_membresButton;
	private JButton m_famillesButton;
 
	private Box m_selectionsBox;
 
	private JMenuBar m_barreMenu;
	// Menu Fichier
	private JMenu m_fichier;
	private JMenuItem m_file_quitter;
	// Menu Edition
	private JMenu m_edition;
	// Menu Affichage
	private JMenu m_affichage;
	private JMenuItem m_aff_membres;
	private JMenuItem m_aff_familles;
 
	/**
         * Constructeur
         */
	public GUIManager() {
		// La frame
		this.setContentPane(build());
		GUIUtils.locateOnScreenCenter(this);
		// La barre de menu
		this.setJMenuBar(buildMenuBar());
		this.setSize(new Dimension(800, 550));
		this.setResizable(false);
		this.setTitle("Manager");
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		this.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent evt) {
				quit();
			}
		});
	}
 
	@Override
	public void paint(Graphics g) {
		// TODO Auto-generated method stub
		super.paint(g);
		build();
	}
 
	/**
         * Construit la frame
         * @return panel Le panel des sélections
         */
	private Container build() {
 
		m_selectionsFrame = new SimpleInternalFrame("Options");
		buildSelectionsFrame();
 
		m_membresFrame = new SimpleInternalFrame("Membres");
		buildMembresFrame();
 
		m_famillesFrame = new SimpleInternalFrame("Familles");
		buildFamillesFrame();
 
		m_barreEtat = new JPanel();
		buildBarreEtat();
 
 
 
        CellConstraints cc = new CellConstraints();
        FormLayout layout = new FormLayout("fill:60dlu, 5dlu, fill:1dlu:grow", "30dlu, fill:50dlu:grow, 20dlu");
        DefaultFormBuilder builder = new DefaultFormBuilder(layout);
//        builder.setDefaultDialogBorder();
        builder.add(createToolBar(), cc.xyw(1, 1, 3));
        builder.add(m_selectionsFrame, cc.xy(1, 2));
        if (currentList == FAMILLES) {
        	builder.add(m_famillesFrame, cc.xy(3, 2));
        } else if (currentList == MEMBRES) {
        	builder.add(m_membresFrame, cc.xy(3, 2));
        }
        builder.add(m_barreEtat, cc.xyw(1, 3, 3));
 
        return builder.getPanel();
 
 
	}
 
	private JComponent createToolBar() {
		FormLayout layout = new FormLayout("p, 5, p, 5dlu, p, ", "p");
		PanelBuilder builder = new PanelBuilder(layout);
		builder.setDefaultDialogBorder();
		builder.setBackground(Color.WHITE);
		JButton but1 = new JButton("1");
		JButton but2 = new JButton("2");
		JButton but3 = new JButton("3");
		CellConstraints cc = new CellConstraints();
		builder.add(but1, cc.xy(1, 1));
		builder.add(but2, cc.xy(3, 1));
		builder.add(but3, cc.xy(5, 1));
 
		return builder.getPanel();
	}
 
	/**
         * Construit la barre de menu principale
         * @return m_barreMenu La barre de menu
         */
	private JMenuBar buildMenuBar() {
		m_barreMenu = new JMenuBar();
		// Menu Fichier
		m_fichier = new JMenu("Fichier");
		m_file_quitter = new JMenuItem("Quitter");
		m_file_quitter.addActionListener(this);
		// Menu Edition
		m_edition = new JMenu("Edition");
		// Menu Affichage
		m_affichage = new JMenu("Affichage");
		m_aff_membres = new JMenuItem("Membres");
		m_aff_membres.addActionListener(this);
		m_aff_familles = new JMenuItem("Familles");
		m_aff_familles.addActionListener(this);
 
		m_fichier.add(m_file_quitter);
		m_affichage.add(m_aff_membres);
		m_affichage.add(m_aff_familles);
 
		m_barreMenu.add(m_fichier);
		m_barreMenu.add(m_edition);
		m_barreMenu.add(m_affichage);
 
		return m_barreMenu;
	}
 
	/**
         * Construit la frame des sélections
         */
	private void buildSelectionsFrame() {		
		// Boutons
		m_membresButton = new JButton("Membres");
		m_membresButton.addActionListener(this);
		m_famillesButton = new JButton("Familles");
		m_famillesButton.addActionListener(this);
		// Box
		m_selectionsBox = Box.createVerticalBox();
		m_selectionsBox.setOpaque(false);
		m_selectionsBox.add(m_membresButton);
		m_selectionsBox.add(m_famillesButton);
 
		// ScrollPane
		JScrollPane selections = new JScrollPane(m_selectionsBox);
		selections.setOpaque(false);
		selections.getViewport().setOpaque(false);
		selections.setViewportBorder(null);
 
		m_selectionsFrame.setContent(selections);
	}
 
	/**
         * Construit la frame des membres
         */
	private void buildMembresFrame() {
		...
	}
 
	/**
         * Construit la frame des familles
         */
	private void buildFamillesFrame() {
		...
	}
 
	/**
         * Consrtuit la barre d'états
         */
	private void buildBarreEtat() {
		m_barreEtat.setBackground(Color.WHITE);
 
		m_barreEtat.add(new JLabel("Exécution en cours"));
	}
 
	/**
         * Permet de quitter l'application
         * @return Si la fenêtre doit être fermée ou pas
         */
	private boolean quit() {
		return true;
	}
 
	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == m_file_quitter) {
			quit();
		} else if (e.getSource() == m_membresButton) {
			currentList = MEMBRES;
			repaint();
		} else if (e.getSource() == m_famillesButton) {
			currentList = FAMILLES;
			repaint();
 
		}
	}
Comment dois-je faire pour que la fenetre soit réaffichée.

Merci d'avance