Sérialisation xml en java
Fermé
limbaon9
Messages postés
42
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
12 mars 2022
-
Modifié le 18 déc. 2021 à 14:00
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 20 déc. 2021 à 13:35
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 20 déc. 2021 à 13:35
A voir également:
- Sérialisation xml en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Xml viewer - Télécharger - Édition & Programmation
- Java apk - Télécharger - Langages
- Jeux java itel 5360 ✓ - Forum Jeux vidéo
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
18 déc. 2021 à 14:53
18 déc. 2021 à 14:53
Bonjour,
Je t'invites à modifier l'ExceptionListener pour avoir la stack complète de l'erreur, pas juste son message. Les causes de l'exception peuvent contenir des informations importantes pour déboguer, puisque ce sont les plus proches de l'erreur.
Par exemple, ton erreur
Mais sans le code de la classe tamagotchi (les données que tu (dé)sérialises), difficile de t'aider davantage, mais attention il y a des bizarreries, comme la méthode setNom qui est static...
Voir aussi la documentation :
Je t'invites à modifier l'ExceptionListener pour avoir la stack complète de l'erreur, pas juste son message. Les causes de l'exception peuvent contenir des informations importantes pour déboguer, puisque ce sont les plus proches de l'erreur.
Par exemple, ton erreur
java.lang.InstantiationException: minato.tamagotchipourrait être
Caused by: java.lang.NoSuchMethodException: minato.tamagotchi.<init>()ce qui signifie qu'il te manque le constructeur
public tamagotchi(){}dans la classe tamagotchi.
Mais sans le code de la classe tamagotchi (les données que tu (dé)sérialises), difficile de t'aider davantage, mais attention il y a des bizarreries, comme la méthode setNom qui est static...
Voir aussi la documentation :
limbaon9
Messages postés
42
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
12 mars 2022
Modifié le 20 déc. 2021 à 13:25
Modifié le 20 déc. 2021 à 13:25
package minato; import java.util.Random; import java.util.Scanner; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import java.util.*; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import java.lang.*; public class tamagotchi extends JPanel { public static JFrame f = new JFrame(); // f.setSize(300,300); static JLabel l = new JLabel(); // static //String type; // animal ou robot ou autre ... private static String nom; private Boolean humeur; private static int age; private double taille; private int poids; private String couleur; private int vitalite; private int hygiene; private static int fatigue; private int connaissance; // int diligence; private static String position; // String p ="Salon"; // Constructeur de tamagotchi public tamagotchi(String nom, Boolean humeur, int age, double taille, int poids, String couleur, int vitalite, int fatigue, int hygiene, int connaissance, String position) { this.nom = nom; this.humeur = humeur; this.age = age; // age=30; this.taille = taille; this.poids = poids; this.couleur = couleur; this.vitalite = vitalite; this.hygiene = hygiene; this.fatigue = fatigue; this.connaissance = connaissance; // this.diligence=diligence; this.position = position; } public tamagotchi(){ }; public Boolean getHumeur(){ return humeur; } public void setHumeur(Boolean humeur) { this.humeur = humeur; } public double getTaille(){ return taille; } public void setTaille(double taille) { this.taille = taille; } public int getPoids(){ return poids; } public void setPoids(int poids) { this.poids = poids; } public String getCouleur(){ return couleur; } public void setCouleur(String couleur) { this.couleur = couleur; } public int getVitalite(){ return vitalite; } public void setVitalite(int vitalite) { this.vitalite = vitalite; } public int getHygiene(){ return hygiene; } public void setHygiene(int hygiene) { this.hygiene = hygiene; } public static int getFatigue(){ return fatigue; } public static void setFatigue(int fatigue) { tamagotchi.fatigue = fatigue; } public int getConnaissance(){ return connaissance; } public void setConnaissance(int connaissance) { this.connaissance = connaissance; } public static int getAge(){ return age; } public static String getNom(){ return nom; } public static void setNom(String n) { nom = n; } public static String getPosition(){ return position; } public static void setPosition(String position) { tamagotchi.position = position; } @Override public String toString(){ return "tamagotchi [humeur=" + humeur + ", taille=" + taille + ", poids=" + poids + ", couleur=" + couleur + ", vitalite=" + vitalite + ", hygiene=" + hygiene + ", connaissance=" + connaissance + "]"; } //m?thodes static void se_deplacer(){ if (position == null) { setPosition("Salon"); Salon salon = new Salon(); // Cree un objet Jardin JLabel l = salon.monSalonJlabel(); // Appel la methode monSalonJLabel et stocke le resultat dans une variable l. f.setContentPane(l); f.repaint(); f.revalidate(); f.setSize(600, 600); f.setVisible(true); } if (position == "Salon") { Salon salon = new Salon(); // Cree un objet Jardin JLabel s = salon.monSalonJlabel(); // Appel la methode monSalonJlabel et stocke le resultat dans une variable l. f.setContentPane(s); f.repaint(); f.revalidate(); f.setSize(600, 600); f.setVisible(true); System.out.println("Ou veux tu te deplacer ?\n"); System.out.println("Jardin\n"); System.out.println("Chambre\n"); System.out.println("Cuisine."); Scanner saisiePosition = new Scanner(System.in); String choix = saisiePosition.nextLine(); if (choix.equals("Jardin") || choix.equals("jardin")) { setPosition("Jardin"); Jardin Jardin = new Jardin(); // Cree un objet Jardin JLabel l = Jardin.monJardinJlabel(); // Appel la methode monJardinJlabel et stocke le resultat dans une variable l. f.setContentPane(l); f.repaint(); f.revalidate(); // f.setSize(300,300); f.setVisible(true); System.out.println("Vous etes maintenant dans le jardin."); } if (choix.equals("Chambre") || choix.equals("chambre")) { setPosition("Chambre"); Chambre chambre = new Chambre();// Cree un objet Chambre JLabel l = Chambre.maChambreJLabel(f);// Appel la methode maChambreJLabel de la classe Chambre + met le resultat dans // une variable l. // JLabel l2 = Chambre.avatarJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans la chambre."); } if (choix.equals("Cuisine") || choix.equals("cuisine")) { setPosition("Cuisine"); Cuisine cuisine = new Cuisine(); JLabel l = cuisine.maCuisineJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans la cuisine."); // System.exit(0); } if (choix.equals("Jardin") == false && choix.equals("jardin") == false && choix.equals("Chambre") == false && choix.equals("chambre") == false && choix.equals("Cuisine") == false && choix.equals("cuisine") == false) { System.out.println("Vous n'avez pas fait le bon choix."); } } if (position == "Jardin") { System.out.println("Ou veux tu te deplacer ?\n"); System.out.println("Salon\n"); System.out.println("Chambre."); Scanner saisiePosition = new Scanner(System.in); String choix = saisiePosition.nextLine(); if (choix.equals("Salon") || choix.equals("salon")) { setPosition("Salon"); Salon salon = new Salon(); JLabel l = Salon.monSalonJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans le salon."); // System.exit(0); } if (choix.equals("Chambre") || choix.equals("chambre")) { setPosition("Chambre"); Chambre chambre = new Chambre(); JLabel l = chambre.maChambreJLabel(f); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans la chambre."); // System.exit(0); } if (choix.equals("Chambre") == false && choix.equals("chambre") == false && choix.equals("Salon") == false && choix.equals("salon") == false) { System.out.println("Vous n'avez pas fait le bon choix."); System.exit(0); } } if (position == "Chambre") { System.out.println("Ou veux tu te deplacer ?\n"); System.out.println("Salon\n"); System.out.println("Jardin\n"); System.out.println("Salle de bain."); Scanner saisiePosition = new Scanner(System.in); String choix = saisiePosition.nextLine(); if (choix.equals("Jardin") || choix.equals("jardin")) { setPosition("Jardin"); Jardin jardin = new Jardin(); JLabel l = Jardin.monJardinJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans le jardin."); // System.exit(0); } if (choix.equals("Salon") || choix.equals("salon")) { setPosition("Salon"); Salon salon = new Salon(); JLabel l = Salon.monSalonJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans le salon."); // System.exit(0); } if (choix.equals("Salle de bain") || choix.equals("salle de bain")) { setPosition("Salle de bain"); Salle_de_bain sdb = new Salle_de_bain(); JLabel l = sdb.maSalledebainJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans la salle de bain."); // System.exit(0); } if (choix.equals("Salon") == false && choix.equals("salon") == false && choix.equals("Jardin") == false && choix.equals("jardin") == false && choix.equals("Salle de bain") == false && choix.equals("salle de bain") == false) { System.out.println("Vous n'avez pas fait le bon choix."); System.exit(0); } } if (position == "Cuisine") { System.out.println("Ou veux tu te deplacer ?\n"); System.out.println("salon\n"); System.out.println("salle de bain\n"); Scanner saisiePosition = new Scanner(System.in); String choix = saisiePosition.nextLine(); if (choix.equals("salon") || choix.equals("Salon")) { setPosition("Salon"); Salon Salon = new Salon(); JLabel l = Salon.monSalonJlabel(); // f.setSize(300,300); f.setContentPane(l); f.repaint(); f.revalidate(); f.setVisible(true); System.out.println("Vous etes maintenant dans le salon."); // System.exit(0); } if (choix.equals("Salle de bain") || choix.equals("salle de bain")) { setPosition("Salle de bain"); Jardin Jardin = new Jardin(); JLabel l = Jardin.monJardinJlabel(); f.setContentPane(l); f.repaint(); f.revalidate(); System.out.println("Vous etes maintenant dans la salle de bain."); // System.exit(0); } if (choix.equals("Salle de bain") == false && choix.equals("salle de bain") == false && choix.equals("Salon") == false && choix.equals("salon") == false) { System.out.println("Vous n'avez pas fait le bon choix."); System.exit(0); } } if (position == "Salle de bain") { System.out.println("Ou veux tu te deplacer ?\n"); System.out.println("Chambre\n"); System.out.println("Cuisine."); Scanner saisiePosition = new Scanner(System.in); String choix = saisiePosition.nextLine(); if (choix.equals("Chambre") || choix.equals("chambre")) { setPosition("Chambre"); Chambre Chambre = new Chambre(); JLabel l = Chambre.maChambreJLabel(f); ; f.setContentPane(l); f.repaint(); f.revalidate(); System.out.println("Vous etes maintenant dans la chambre."); // System.exit(0); } if (choix.equals("Cuisine") || choix.equals("cuisine")) { setPosition("Cuisine"); Cuisine Cuisine = new Cuisine(); JLabel l = Cuisine.maCuisineJlabel(); f.setContentPane(l); f.repaint(); f.revalidate(); System.out.println("Vous etes maintenant dans la cuisine."); // System.exit(0); } if (choix.equals("Cuisine") == false && choix.equals("cuisine") == false && choix.equals("Chambre") == false && choix.equals("chambre") == false) { System.out.println("Vous n'avez pas fait le bon choix."); System.exit(0); } } } static void etudier(){ System.out.println("Math?matique, tapez 1."); System.out.println("Culture G?n?rale, tapez 2."); Scanner saisieMatiere = new Scanner(System.in); String choix = saisieMatiere.nextLine(); if (choix.equals("1")) { System.out.println("Choisissez l'op?ration : "); System.out.println("l'addition, tapez +"); System.out.println("la multiplication, tapez *"); System.out.println("la soustraction, tapez -"); System.out.println("La division, tapez /"); Scanner sasieOperation = new Scanner(System.in); String choix2 = sasieOperation.nextLine(); if (choix2.equals("*")) { int min = 1; int max = 9; Random random = new Random(); int a = random.nextInt(9 + 1) + 1; int b = random.nextInt(9 + 1) + 1; int c = random
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
20 déc. 2021 à 13:35
20 déc. 2021 à 13:35
Bonjour,
Il faut revoir le type de tes attributs :
Pour que cela fonctionne, tu dois d'une part retirer les static qui n'ont rien à faire là, d'autre part modifier les types primitifs en leur objet associé (int → Integer, double → Double) en modifiant également les getter/setter :
À ce moment là, tu devrais avoir un XML complet.
Il faut revoir le type de tes attributs :
private static String nom; private Boolean humeur; private static int age; private double taille; private int poids; private String couleur; private int vitalite; private int hygiene; private static int fatigue; private int connaissance; // int diligence; private static String position; // String p ="Salon";
Pour que cela fonctionne, tu dois d'une part retirer les static qui n'ont rien à faire là, d'autre part modifier les types primitifs en leur objet associé (int → Integer, double → Double) en modifiant également les getter/setter :
private String nom; private Boolean humeur; private Integer age; private Double taille; private Integer poids; private String couleur; private Integer vitalite; private Integer hygiene; private Integer fatigue; private Integer connaissance; //private Integer diligence; private String position; //private String p ="Salon";
À ce moment là, tu devrais avoir un XML complet.
18 déc. 2021 à 16:38
18 déc. 2021 à 17:22