bonjour, je cherche a sauvegarder mon Jtree (que g édité graphiquement sur eclipse )dans ma base de donnees MySQL; Si quelqu'un a une idée. MERCI.
bonjour, je cherche a sauvegarder mon Jtree (que g édité graphiquement sur eclipse )dans ma base de donnees MySQL; Si quelqu'un a une idée. MERCI.
Bonjour,
ben tu ouvres la Base de Données, tu mets le JTree dedans, et tu refermes la Base de Données
Plus sérieusement, qu'est-ce qui te pose problème ?
Et bien en fait g à moitié résolu le problème puisque je l'ai sérializé en xml ( g abandonné l'idée de la base de données) mais le problème maintenant c'est pour le réouvrir dans mon interface graphique... ca bug ...quelqu'un aurait-il un exemple?
avec la tonne de code que tu nous fournis, on va surement pouvoir t'aider...
Tu nous dis qu'il y a un problème, super cool, mais nous on peut pas deviner qu'est ce qui cloche et encore moins comment résoudre ce fameux problème. Et je n'ai pas d'exemple sous la main, je ne vois même pas vraiment ce que tu veux faire.
Merci de nous aider à t'aider![]()
bjr,
voila, en fait g crée un bouton sur mon interface qui permet de sauver mon arbre en prenant la racine (rootNode). -->Jusque la pas de probleme il me crée bien mon tree.xml
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 private JButton getJButton2() { if (jButton2 == null) { jButton2 = new JButton(); jButton2.setBounds(new Rectangle(16, 146, 100, 22)); jButton2.setText("sauver"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { try { XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("tree.xml"))); encoder.writeObject(rootNode); encoder.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } } }); } return jButton2;
Le problème vient lorsque j'utilise le boutton " charger " et la ca plante. (pas a la compilation mais lorsque je clique sur celui ci.)Je pense que le problème vient de cette ligne de code:
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 private JButton getJButton3() { if (jButton3 == null) { jButton3 = new JButton(); jButton3.setBounds(new Rectangle(18, 11, 97, 27)); jButton3.setText("charger"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { try { XMLDecoder decoder = new XMLDecoder( newBufferedInputStream (new FileInputStream( "tree.xml" ))); TreeModel model = (TreeModel)decoder.readObject(); decoder.close(); if( model != null ) { tree = new JTree(model); else tree = new JTree(); } catch (FileNotFoundException e1) { System.out.println("on est ds exeption"); e1.printStackTrace(); } } }); } return jButton3; }
TreeModel model = (TreeModel)decoder.readObject();
Journal d'erreur:
---------------
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 java.lang.ClassCastException: javax.swing.tree.DefaultMutableTreeNode at pack.Interface$4.actionPerformed(Interface.java:407) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1815) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1868) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:449) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:287) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:274) at java.awt.Component.processMouseEvent(Component.java:5196) at java.awt.Component.processEvent(Component.java:4993) at java.awt.Container.processEvent(Container.java:1607) at java.awt.Component.dispatchEventImpl(Component.java:3712) at java.awt.Container.dispatchEventImpl(Container.java:1665) at java.awt.Component.dispatchEvent(Component.java:3574) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3521) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3166) at java.awt.Container.dispatchEventImpl(Container.java:1651) at java.awt.Window.dispatchEventImpl(Window.java:1653) at java.awt.Component.dispatchEvent(Component.java:3574) at java.awt.EventQueue.dispatchEvent(EventQueue.java:536) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:237) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:187) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:181) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:173) at java.awt.EventDispatchThread.run(EventDispatchThread.java:136)
--------------merci pour votre aide éventuelle-------------------
Normal : tu sauvegardes un DefaultMutableTreeNode, et lorsque tu charges l'objet, tu essaies de le caster en TreeModel. D'où la ClassCastException.
Pour décoder, essaie plutôt ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 XMLDecoder decoder = ...; TreeNode rootNode = (TreeNode)decoder.readObject(); TreeModel model = new DefaultTreeModel(rootNode);
Partager