Bonjours à tous,
Voilà je vous explique mon problème :
Je développe un programme permettant de gérer une bibliothèque. Ce programme contient (entre autre) :
Une classe "Session" qui a pour variable l'utilisateur en cours (instance de la classe utilisateur) mais aussi une variable "frameEnCours" de type frmPrinc (classe qui hérite de JFrame), ainsi qu'une variable "panelEnCours" de type JPanel.
Lorsque l'utilisateur clique sur un menu, je fais un dispose() sur la frameEnCours et j'en instancie une nouvelle avec comme paramètre la JPanel que je veut afficher à l'intérieur de cette façon :
Bref sa marche bien mais c'est vraiment pas propre. Malheureusement, toutes mes tentatives pour mettre à jours sans passer par un rechargement de la page sont restés veines. Et ce, malgrès une cascade de repaint, de validate, de updateUI sur mes containers...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public frmPrinc(Session s, JPanel panel) { super("easyLibrary - Session de " + s.getUtilisateur().getNom()); this.s = s; this.setVisible(true); initComponents(); panelEnCours.setLayout(new BorderLayout(1, 1)); //ici, panelEnCours est le nom d'une JPanel à l'interieur de frmPrinc panelEnCours.add(panel); this.repaint(); this.validate(); s.setFrameEnCours(this); }
J'ai essayé ceci : (une méthode dans frmPrinc visant à mettre à jour la JPanel : )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void affecterPanel(JPanel panel) { panelEnCours.removeAll(); panelEnCours.validate(); panelEnCours.setLayout(new BorderLayout(1, 1)); panelEnCours.add(panel); panelEnCours.repaint(); panelEnCours.validate(); panelEnCours.updateUI(); }
Mais en vain, la fenêtre ne se met pas à jours mais en plus je ne peux cliquer nul part après cela. Il n'y a aucune erreur, le programme ce ferme très bien en cliquant sur la croix mais aucun bouton interne au programme ne fonctionne.
Quelqu'un aurait-il une idée?
Merci d'avance!
Partager