Bonjour,
Je suis quasi débutante en Java (un mois de tripatouillages intensifs) et je bute depuis deux jours sur le problème suivant :
J'ouvre une fenêtre principale:
- contentPane : un JSplitPane (mainContent)
- a gauche : un Jpanel (treeView qui contient un JTree de rubriques)
- a droite : un panneau (rubriqueView qui devrait évoluer en fonction de la rubrique sélectionnée dans le menu.
Ce panneau rubriqueView (JSplitPane) est lui même divisé en deux :
- en haut : htmlView (une page HTML d'explication)
- en bas : actionView (un formulaire pour déclencher les actions ultérieures)
Au démarrage, pas de problème : c'est la rubrique racine qui affiche ses composants.
Je procède pas à pas. Donc dans un premier temps, j'essaie sur un clic dans le menu de modifier la page d'explication.
Je n'ai aucune erreur dans l'exécution, mais le panneau htmlView se vide et le reste DESESPEREMENT !!!
J'ai essayé toutes les combinaisons possibles de validate, revalidate, repaint....
Merci de votre aide.
Voici une mouture de mon code (parmi d'autres) :
Et les affichages de contrôle pour cette version :
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 public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) menu.getLastSelectedPathComponent(); if (node == null) return; Object currentNode = node.getUserObject(); currentRubrique = (Rubrique) currentNode; changeHtmlView(currentRubrique.getStrUrl()); // changeActionView(); } private void changeHtmlView(String strUrl) { htmlView.removeAll(); JEditorPane h = new JEditorPane(); h.setEditable(false); String str = "resources/html/" + strUrl; URL url = Start.class.getResource(str); try { if (url != null) { h.setPage(url); } else { h.setToolTipText("Aucune information n'est disponible... ");} } catch (IOException e) { System.err.println("Tentative de lecture d'une URL erronée: " + url);} htmlView.add(h); htmlView.validate(); actionView.validate(); rubriqueView.validate(); mainContent.validate(); mainContent.repaint(); System.out.println("htmlView : \n- Displayable:" + htmlView.isDisplayable() + "\n- Enabled:" + htmlView.isEnabled() + "\n- Showing:" + htmlView.isShowing() + "\n- Valid:" + htmlView.isValid() + "\n- Visible:" + htmlView.isVisible()); System.out.println("ActionView : \n- Displayable:" + actionView.isDisplayable() + "\n- Enabled:" + actionView.isEnabled() + "\n- Showing:" + actionView.isShowing() + "\n- Valid:" + actionView.isValid() + "\n- Visible:" + actionView.isVisible()); System.out.println("rubriqueView : \n- Displayable:" + rubriqueView.isDisplayable() + "\n- Enabled:" + rubriqueView.isEnabled() + "\n- Showing:" + rubriqueView.isShowing() + "\n- Valid:" + rubriqueView.isValid() + "\n- Visible:" + rubriqueView.isVisible()); System.out.println("mainContent : \n- Displayable:" + mainContent.isDisplayable() + "\n- Enabled:" + mainContent.isEnabled() + "\n- Showing:" + mainContent.isShowing() + "\n- Valid:" + mainContent.isValid() + "\n- Visible:" + mainContent.isVisible()); }
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 htmlView : - Displayable:true - Enabled:true - Showing:true - Valid:true - Visible:true ActionView : - Displayable:true - Enabled:true - Showing:true - Valid:true - Visible:true rubriqueView : - Displayable:true - Enabled:true - Showing:true - Valid:true - Visible:true mainContent : - Displayable:true - Enabled:true - Showing:true - Valid:true - Visible:true
Partager