J'ai une fenêtre composée comme suit :
- en haut, une barre d'outils, avec des JButtons
- juste en dessous, sur toute la largeur de la fenêtre, un JLabel, qui contient le titre de la fenêtre affichée
- et sur le reste de la fenêtre, un JPanel (DYNAMIC), qui est mis à jour selon le clic.
Sur chaque bouton de la barre d'outils, j'ai un écouteur ActionListener :
Donc, en toute logique, lors du clic sur le bouton ZONE, le label de titre doit changer de valeur, et le Panel DYNAMIC est vidé, puis rempli avec les éléments nécessaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 jButton_ZONE.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { jLabel_TITRE.setText("Affichage d'une zone"); jPanel_DYNAMIC.removeAll(); jPanel_DYNAMIC.add(new zone());//zone est un objet de type JPanel jPanel_DYNAMIC.repaint(); } });
Le problème, c'est qu'il faut faire 2 clics pour voir ces 2 actions réalisées...
En effet, lors du premier clic, le TITRE est mis à jour.
Puis, c'est seulement lors d'un second clic sur le même bouton que le JPanel DYNAMIC est mis à jour...
Pourquoi? Normalement, tout devrait être exécuté lors du même évènement..
Partager