Erreur de débutant, java.lang.NullPointerException
Bonjour,
Je suis débutant et j'ai effectué un programme récupérant plusieurs données (image et capteurs) comprenant une création automatique d'un fichier xml réunissant toutes les données acquise. Et c'est là ou je bloque car je n'ai pas totalement compris la notion d'initialisation des classe d'où mon erreur"java.lang.NullPointerException"
Explication des 2 classes:
J'ai une classe IHM qui comme son nom l'indique réunie tout l'interface dont la visualisation des données vidéos et capteur plus l'interface permettant de capturé ces données dans des onglets. C'est là ou intervient la classe qui me pose problème. C'est ma classe OngletCompenent qui crée de nouveaux onglet sur mon interface à chaque nouveaux appuies sur un bouton et qui récupère les infos liées aux capteurs et à ma vidéo.
Donc le principe pour la création de mon fichier xml c'est de créer la base sur mon IHM puis d'y ajouter une nouvelle partie de XML à chaque validation d'onglet.
Là ou je coince c'est pour passer mon Element Racine depuis IHM à OngletCompenent.
Voici ma classe principale IHM qui gère l'initialisation de mon fichier XML (je vous mes que le code concernant la génération de mon xml):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public IHM() { ....
//**** X M L *****/
//création de la racine principale
Element Base = new Element("Racine");
//création de nouveau document JDOM basé sur la racine
org.jdom2.Document doc = new Document(Base);
getdocument(doc);
getracine(Base);
//*** X M L ******/
//***XML****//
public void getracine(Element racine)
{
this.racine = racine;
}
....
} |
Et voici ma seconde classe OngletCompenent (je vous mes pas tout le doe pour la lisibilité):
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
public Element racine; //Base de mon XML
public int o = 0; //num Onglets
.....
public final class OngletCompenent extends javax.swing.JPanel {
....
Element racine;
IHM element;
....
private void ValidationOngletMouseClicked(java.awt.event.MouseEvent evt) {
racine = element.racine;
o = element.o;
ValidationOnglet.setBackground(Color.GREEN);
ValidationOnglet.setText("Onglet validé");
sdate = Date.getText();
slieu = Lieu.getText();
sheure = Heure.getText();
scapteur = textCapteur.getText();
scommentaire = textremarque.getText();
simage = (fichier.getAbsolutePath()+"_"+o+".jpg");
sOnglet = "onglet_"+o;
sNum = Integer.toString(o);
//Créaqtion d'un nouvel élément Onglet
//en tant qu'Element de racine
Element onglet = new Element(sOnglet);
racine.addContent(onglet);
//cration d'un nouveau attribut de classe que j'ajoute à onglet
Attribute numero = new Attribute("neméro",sNum);
onglet.setAttribute(numero);
//On crée un nouvel Element lieu
Element lieu = new Element("Lieu");
lieu.setText(slieu);
onglet.addContent(lieu);
//On crée un nouvel Element date
Element date = new Element("date");
date.setText(sdate);
onglet.addContent(date);
//On crée un nouvel Element heure
Element heure = new Element("heure");
heure.setText(sheure);
onglet.addContent(heure);
//On crée un nouvel Element commentaire
Element commentaire = new Element("commentaire");
commentaire.setText(scommentaire);
onglet.addContent(commentaire);
Element image= new Element("image");
image.setText(simage);
onglet.addContent(image);
}
} |
Donc mon programme plante à la ligne racine = element.racine;.
Voila j’espère que j'ai su resté clair dans mes explications.
Je vous remercie d'avance pour vos réponses.