J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud
final (pas une catégorie) est sélectionné, j'affiche un JTable pour
présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la
méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma
JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un
noeud pour en afficher le détail :
java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
at
javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2193)
at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(BasicTreeUI.
java:2840)
at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.jav
a:2801)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
at java.awt.Component.processMouseEvent(Component.java:5097)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code,
je n'aurais jamais su d'où venait le problème !
Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit
plus mais je dois attendre un repaint de mon contrôle pour que les
modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jerome moliere
LR wrote:
Salut,
J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud final (pas une catégorie) est sélectionné, j'affiche un JTable pour présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un noeud pour en afficher le détail : java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2193)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(BasicTreeUI. java:2840)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.jav a:2801)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
at java.awt.Component.processMouseEvent(Component.java:5097)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja va:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java :151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code, je n'aurais jamais su d'où venait le problème ! Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit plus mais je dois attendre un repaint de mon contrôle pour que les modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ? en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING.... sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le refresh se fera tout seul
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
LR wrote:
Salut,
J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud
final (pas une catégorie) est sélectionné, j'affiche un JTable pour
présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la
méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma
JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un
noeud pour en afficher le détail :
java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
at
javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2193)
at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(BasicTreeUI.
java:2840)
at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.jav
a:2801)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
at java.awt.Component.processMouseEvent(Component.java:5097)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code,
je n'aurais jamais su d'où venait le problème !
Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit
plus mais je dois attendre un repaint de mon contrôle pour que les
modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ?
en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING....
sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le
refresh se fera tout seul
Jerome
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud final (pas une catégorie) est sélectionné, j'affiche un JTable pour présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un noeud pour en afficher le détail : java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2193)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(BasicTreeUI. java:2840)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.jav a:2801)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
at java.awt.Component.processMouseEvent(Component.java:5097)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja va:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java :151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code, je n'aurais jamais su d'où venait le problème ! Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit plus mais je dois attendre un repaint de mon contrôle pour que les modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ? en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING.... sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le refresh se fera tout seul
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
LR
Salut,
J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud
final (pas une catégorie) est sélectionné, j'affiche un JTable pour présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un
noeud pour en afficher le détail : java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code,
je n'aurais jamais su d'où venait le problème ! Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit
plus mais je dois attendre un repaint de mon contrôle pour que les modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ? en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING.... sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le refresh se fera tout seul
OK merci pour ta réponse, je ne vais pas refaire toute l'architecture de mon programme mais je saurai pour la prochaine fois... J'ai remplacé updateUI() par repaint() comme j'aurais du le faire dès le début. A+Lilian
Salut,
J'utilise un JTree pour afficher une structure de données. Lorsqu'un
noeud
final (pas une catégorie) est sélectionné, j'affiche un JTable pour
présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la
méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma
JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne
un
noeud pour en afficher le détail :
java.lang.NullPointerException
at
javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de
code,
je n'aurais jamais su d'où venait le problème !
Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se
produit
plus mais je dois attendre un repaint de mon contrôle pour que les
modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ?
en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING....
sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le
refresh se fera tout seul
OK merci pour ta réponse, je ne vais pas refaire toute l'architecture de mon
programme mais je saurai pour la prochaine fois...
J'ai remplacé updateUI() par repaint() comme j'aurais du le faire dès le
début.
A+Lilian
J'utilise un JTree pour afficher une structure de données. Lorsqu'un noeud
final (pas une catégorie) est sélectionné, j'affiche un JTable pour présenter le détail des données du noeud sélectionné.
Tout fonctionne à merveille mais depuis que j'ai ajouté un appel à la méthode updateUI de mon JTree depuis l'événement "tableChanged" de ma JTable, j'obtient l'erreur ci-dessous à chaque fois que je sélectionne un
noeud pour en afficher le détail : java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.isToggleEvent(BasicTreeUI.java:2138)
Si je n'avais pas testé mon programme après chaque nouvelle ligne de code,
je n'aurais jamais su d'où venait le problème ! Mais c'est certain, si j'enlève l'appel à updateUI, l'erreur ne se produit
plus mais je dois attendre un repaint de mon contrôle pour que les modifications que j'ai entré dans ma JTable se reportent sur le JTree.
Comment régler ça ? en utilisant plutot une solution de design et en tirant parti du MVC
integre dans tes composants SWING.... sur l'event dans ta JTable tu dois mettre a jour ton TreeModel et le refresh se fera tout seul
OK merci pour ta réponse, je ne vais pas refaire toute l'architecture de mon programme mais je saurai pour la prochaine fois... J'ai remplacé updateUI() par repaint() comme j'aurais du le faire dès le début. A+Lilian