Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/12/2006, à 01: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, à 01:43)

Hors ligne

#2 Le 27/12/2006, à 03: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, à 19: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, à 19:58)


Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++

Hors ligne

#4 Le 27/12/2006, à 22:07

pluviotor

Re : [Java/Interface graphique]Exceptions

Bah vi big_smile

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