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:
Un exemple d'appel d'affichage de bouton
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 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); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part ToolBar.getInstance().afficherBoutonContrat();
Une idée du problème?
Merci.![]()
Partager