deserializing an object 01-18-2017, 08:21 PM
#1
Etudiant Class
Affichage resultat
Main class
i'm having this error message
I checked on google it is said that i should create a private final static long serialVersionUID.
That didn't actually work,any idea how to fix this issue ?
Spoiler:
Code:
package projet;
import java.io.Serializable;
import java.util.ArrayList;
public class Etudiant implements Serializable {
private String nom;
private String prenom;
private String numeroDossier;
private String password;
private ArrayList<Resultat>resultat;
public Etudiant(String nom,String prenom,String numeroDossier,String password,ArrayList<Resultat>resultat){
this.nom=nom;
this.prenom=prenom;
this.numeroDossier=numeroDossier;
this.password=password;
this.resultat=resultat;
}
public void setNom(String nom){
this.nom=nom;
}
public String getNom(){
return this.nom;
}
public void setPrenom(String prenom){
this.prenom=prenom;
}
public String getPrenom(){
return this.prenom;
}
public void setNumeroDossier(String numeroDossier){
this.numeroDossier=numeroDossier;
}
public String getNumeroDossier(){
return this.numeroDossier;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return password;
}
public void setResultat(ArrayList<Resultat> resultat){
this.resultat=resultat;
}
public ArrayList<Resultat> getResultat(){
return this.resultat;
}
public void ajouterResultat(Resultat resultat){
this.resultat.add(resultat);
}
public String toString(){
return this.nom+this.numeroDossier+this.password+this.prenom+this.resultat;
}
}
Affichage resultat
Spoiler:
Code:
package projet;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import static projet.Etudiant.*;
public class AffichageResultatWindow {
private JFrame affichageResultatFrame;
private JLabel resultatEtudiantLabel;
private JList domaineList;
private JScrollPane scrollPane;
private JButton noteDomaineAlfa,noteDomaineNote,noteMoyenneAlfa;
private JPanel topPanel,leftPanel,rightPanel,botPanel;
public AffichageResultatWindow() throws IOException, ClassNotFoundException{
domaineList=new JList();
scrollPane=new JScrollPane(domaineList);
scrollPane.setPreferredSize(new Dimension(150, 150));
affichageResultatFrame=new JFrame("projetNFA035");
affichageResultatFrame.setSize(700,500);
affichageResultatFrame.setLayout(new BorderLayout());
affichageResultatFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
resultatEtudiantLabel=new JLabel("Resultats des Etudiants");
resultatEtudiantLabel.setForeground(Color.blue);
resultatEtudiantLabel.setFont(new Font("Arial",Font.BOLD,25));
topPanel=new JPanel();
topPanel.add(resultatEtudiantLabel);
File file=new File(System.getProperty("user.dir")+"//Domaines");
if(file.listFiles().length==0){
scrollPane.setViewportView(domaineList);
}
else{
domaineList=new JList(file.list());
scrollPane.setViewportView(domaineList);
}
leftPanel=new JPanel();
leftPanel.setPreferredSize(new Dimension(150,150));
leftPanel.add(scrollPane);
rightPanel=new JPanel();
rightPanel.setPreferredSize(new Dimension(500,250));
rightPanel.setBorder(BorderFactory.createLineBorder(Color.black)) ;
noteDomaineAlfa=new JButton("Note par domaine/ordre alpha");
noteDomaineNote=new JButton("Note par domaine/ordre note");
noteMoyenneAlfa=new JButton("Note moyenne/ordre alpha");
botPanel=new JPanel();
botPanel.add(noteDomaineAlfa);
botPanel.add(noteDomaineNote);
botPanel.add(noteMoyenneAlfa);
affichageResultatFrame.add(topPanel,BorderLayout.NORTH);
affichageResultatFrame.add(rightPanel,BorderLayout.EAST);
affichageResultatFrame.add(leftPanel,BorderLayout.WEST);
affichageResultatFrame.add(botPanel,BorderLayout.SOUTH);
affichageResultatFrame.setVisible(true);
File dir=new File(System.getProperty("user.dir")+"//Etudiant//etudiant.txt");
FileInputStream fin = new FileInputStream(dir);
ObjectInputStream ois = new ObjectInputStream(fin);
ArrayList<Etudiant> domaineList = (ArrayList)ois.readObject();
System.out.println(domaineList.get(0).getPrenom());
}
}
Main class
Spoiler:
Code:
package projet;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import static projet.Domaines.ajouterQcm;
public class Projet {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
boolean dir2 = new File(System.getProperty("user.dir")+"//Domaines").mkdir();
boolean dir3=new File(System.getProperty("user.dir")+"//Etudiant").mkdir();
//new AffichageResultatWindow();
//new CreationDomaineWindow();
// new CreerCompteEtudiantWindow();
new AdministrateurWindow();
//new GestionQcmWindow();
}}
i'm having this error message
Spoiler:
Code:
Jan 18, 2017 9:10:12 PM projet.AdministrateurWindow$4 actionPerformed
SEVERE: null
java.io.InvalidClassException: projet.Etudiant; local class incompatible: stream classdesc serialVersionUID = 2510513620002320279, local class serialVersionUID = -7685469652645975124
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at projet.AffichageResultatWindow.<init>(AffichageResultatWindow.java:74)
at projet.AdministrateurWindow$4.actionPerformed(AdministrateurWindow.java:98)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Picked up _JAVA_OPTIONS: -Xmx256M
I checked on google it is said that i should create a private final static long serialVersionUID.
That didn't actually work,any idea how to fix this issue ?
Everyone should learn how to code, it teaches you how to think.
You don't have to be a Genius to know how to code you just need to be determined.
The computer is incredibly fast, accurate, and stupid; man is unbelievably slow, inaccurate, and brilliant; together they are powerful beyond imagination.