Bonjour,
voila
j'ai une classe étendue à JFrame qui contient un JXCollapsiblePane (de swingx). Un bouton permet d'enrouler/dérouler cet élément. voici le code qui l'implémente :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// Show/hide the Pane
		Action foldUnfold = _panelAdvanced.getActionMap().get(JXCollapsiblePane.TOGGLE_ACTION);
 
		foldUnfold.putValue(JXCollapsiblePane.COLLAPSE_ICON, UIManager.getIcon("Tree.expandedIcon"));
		foldUnfold.putValue(JXCollapsiblePane.EXPAND_ICON, UIManager.getIcon("Tree.collapsedIcon"));
		JButton toggle = new JButton(foldUnfold);
		toggle.setText("Advanced Settings");
J'aimerai qu'un clic sur le bouton "pack" la fenetre juste après l'animation d'enroulement/déroulement du JXCollapsiblePane.

Pour le moment j'ai essayé :
-d'enregistrer un autre listener sur le bouton, mais le problème est que celui-ci est traité avant le PropertyChangeListener de foldUnfold.
-de redéfinir la méthode setCollapsed contenue par la classe ToggleAction appellée par JXCollapsiblePane. Cela ne marche pas car ToggleAction est une classe privée.

voici le code source de JXCollapsiblePane

Voila, je vous invite à me faire part de vos suggestions
merci