#1 Le 27/12/2006, à 00:49
- Stephanie
[Java/Interface graphique]Exceptions
Bonjour,
J'ai réussi à coder un programme permettant de sauvegarder ce que j'ai tapé dans ma JTable : la classe Test
Comme ça fonctionnait, j'ai intégré un code qui permet de remplir des cases en cliquant dessus : la classe Editeur.
J'obtiens des exceptions lorsque je valide ce que j'ai écrit dans la JTable
Dernière modification par Stephanie (Le 01/01/2007, à 00:43)
Hors ligne
#2 Le 27/12/2006, à 02:42
- guyver2
Re : [Java/Interface graphique]Exceptions
ta classe Editeur n'est pas serializable -> d'ou l'erreur, il faut ajouter Implements Serializable dans l'en tete de ta classe editeur.
Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++
Hors ligne
#3 Le 27/12/2006, à 18:58
- guyver2
Re : [Java/Interface graphique]Exceptions
chez moi ça compile en rajoutant Serializable (ainsi que import java.io.*; ) dans Editeur.
Le probleme c'est qu'a lexecution j'ai une erreur
java.io.NotSerializableException: javax.swing.JTable$CellEditorRemover
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
at javax.swing.JTable.writeObject(JTable.java:4031)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at javax.swing.event.EventListenerList.writeObject(EventListenerList.java:240)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at Test.sauve_actionPerformed(Test.java:227)
at Test$2.actionPerformed(Test.java:189)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
qui n'est pas la meme que la tienne, mais qui indique que Jtable n'est pas serializable... Ce qui semble contradictoir avec la doc de sun.
Je ne sais pas quoi te dire. Désolé...
A quoi correspond le "$cellEditorRemover" deriere javax.swing.Jtable a la premiere ligne du message d'erreur?
Dernière modification par guyver2 (Le 27/12/2006, à 18:58)
Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++
Hors ligne
#4 Le 27/12/2006, à 21:07
- pluviotor
Re : [Java/Interface graphique]Exceptions
Bah vi
Si (file.exists)
tu ne fais pas l'initialisation de la JTable
càd
table = new JTable()......;
Essayes de découper tout ça en fonction (plutot que de tout coller dans le constructeur!!! - car c'est pas beau!) ca te paraitras de plus en plus clair.
Pour les membres d'une classe qui ne sont pas à serializer (ou qui ne le peuvent pas) il faut rajouter le terme "transient" devant comme ta JTable.
Hors ligne