[JtoolBar]Problème de raffraichissement
Bonjour,
J'ai une appli possédant, entre autre, une JToolBar. En fonction de là où on se trouve dans l'application, je voudraisajouter ou supprimer des icones dans cette JToolBar.
Pour cela j'ai créé une classe héritant de JToolbar, à laquelle j'ai ajouté toutes les icones qui peuvent être affichées, en attribuant false à leur visibilité.
Pour les réafficher, j'ai créé dans cette même classe, et pour chaque bouton, une méthodes afficherNomDuBouton() où je modifie la proprieté visible (que je passe donc à true) du bouton concerné. En fonction donc de où se trouve l'utilisateur, une classe appelle ces méthodes.
Mon soucis est que les icones ne s'affichent pas dans ma JToolBar.
Voilà quelques morceaux de code :
class Toolbar:
Code:
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
|
public class ToolBar extends JToolBar implements ActionListener {
private static ToolBar _instance;
private BundleManager _bundle = BundleManager.getInstance();
private JButton _retourButton,
_suivantButton,
_contratButton,
_photoButton;
private ToolBar() {
setOpaque(false);
init();
}
public static ToolBar getInstance() {
if (_instance == null) _instance = new ToolBar();
return _instance;
}
private void init() {
//création des boutons
_retourButton = new JButton();
_suivantButton = new JButton();
_contratButton = new JButton();
_photoButton = new JButton();
//initialisation des boutons
initialiserBouton(_retourButton, Constantes.ICON_PRECEDENT);
initialiserBouton(_suivantButton, Constantes.ICON_SUIVANT);
initialiserBouton(_contratButton, Constantes.ICON_CONTRAT);
initialiserBouton(_photoButton, Constantes.ICON_PHOTO);
//ajout des boutons
add(_retourButton);
add(_suivantButton);
add(_contratButton);
add(_photoButton);
//On cache les boutons
_retourButton.setVisible(false);
_suivantButton.setVisible(false);
_cartoButton.setVisible(false);
_photoButton.setVisible(false);
}
public void actionPerformed(ActionEvent e) {
[...]
}
public void afficherBoutonPrecedent() {
_retourButton.setEnabled(true);
_retourButton.setVisible(true);
}
public void afficherBoutonSuivant(boolean activer) {
_suivantButton.setEnabled(true);
_suivantButton.setVisible(true);
}
public void afficherBoutonContrat(){
_contratButton.setEnabled(true);
_contratButton.setVisible(true);
}
public void afficherBoutonPhoto(){
_photoButton.setEnabled(true);
_photoButton.setVisible(true);
}
private void initialiserBouton(JButton bouton, Icon iconeActif) {
//les icônes
bouton.setIcon(iconeActif);
bouton.setText(null);
bouton.setMargin(new Insets(0, 0, 0, 0));
//les listeners
bouton.addActionListener(this);
//désactiver les boutons
bouton.setEnabled(false);
bouton.setBorderPainted(false);
bouton.setIconTextGap(10);
}
} |
Un exemple d'appel d'affichage de bouton
Code:
ToolBar.getInstance().afficherBoutonContrat();
Une idée du problème?
Merci. :D