Bonjour je ne parviens pas à extraire mes donnée du fichier xml nommé Maison.xml vers un JTable bref kan j'execute j'ai un message d'erreur que voici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Exception in thread "main" java.lang.NullPointerException
	at ModeleDynamiqueObjet.<init>(ModeleDynamiqueObjet.java:19)
	at JTableBasiqueAvecModeleDynamique.<init>(JTableBasiqueAvecModeleDynamique.java:10)
	at JTableBasiqueAvecModeleDynamique.main(JTableBasiqueAvecModeleDynamique.java:59)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
je vous fait voir mes deux fichier de code et le fichier XML ainsi que l'erreur afin que vous me disiez où je fait l'erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
62
63
64
 
//fIchier JTable
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import javax.swing.*;
import maison.*;
 
public class JTableBasiqueAvecModeleDynamique extends JFrame {
    private ModeleDynamiqueObjet modele = new ModeleDynamiqueObjet();
    private JTable tableau;
 
    public JTableBasiqueAvecModeleDynamique() {
        super();
 
        setTitle("JTable avec modèle dynamique");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        tableau = new JTable(modele);
 
        getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);
 
        JPanel boutons = new JPanel();
 
        boutons.add(new JButton(new AddAction()));
        boutons.add(new JButton(new RemoveAction()));
 
        getContentPane().add(boutons, BorderLayout.SOUTH);
 
        pack();
    }
 
 
 
    private class AddAction extends AbstractAction {
        private AddAction() {
            super("Ajouter");
        }
 
        public void actionPerformed(ActionEvent e) {
            modele.addMaison(new Maison(100,"Sami",100, 200,300.0));
        }
    }
 
    private class RemoveAction extends AbstractAction {
        private RemoveAction() {
            super("Supprimmer");
        }
 
        public void actionPerformed(ActionEvent e) {
            int[] selection = tableau.getSelectedRows();
 
            for(int i = selection.length - 1; i >= 0; i--){
                modele.removeMaison(selection[i]);
            }
        }
    }
    public static void main(String[] args) {
        JTableBasiqueAvecModeleDynamique s=new JTableBasiqueAvecModeleDynamique();
        s.setVisible(true);
    }
 
}


voici le fichier où je recupère les donnée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
62
63
64
65
66
67
68
69
 
 
import Views2.AccueilProjet;
import composants.SaveXmlComposants;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import maison.*;
 
public class ModeleDynamiqueObjet extends AbstractTableModel {
 
     ArrayList<Maison>   listeMaisons = SaveXmlComposants.getListeMaison("Maisons.xml");
     ArrayList<Maison> listeMaison = null;
     private final String[] entetes = {"Numero", "Nom", "Nombre de Pieces", "Nombre de Composant"};
 
    public ModeleDynamiqueObjet() {
        super();
        for(int i = 0;i<listeMaisons.size();++i)      
 
            listeMaison.add(new Maison(i, listeMaisons.get(i).getNomMaison(), listeMaisons.get(i).getListePiece().size(),listeMaisons.get(i).getListePiece().get(i).getListeComposant().size(),listeMaisons.get(i).getListePiece().get(i).getTempInterne()));   
 
       }
 
    @Override
    public int getRowCount() {
        return listeMaison.size();
    }
 
    @Override
    public int getColumnCount() {
        return entetes.length;
    }
 
    @Override
    public String getColumnName(int columnIndex) {
        return entetes[columnIndex];
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex){
            case 0:
                return listeMaison.get(rowIndex);
            case 1:
                return listeMaison.get(rowIndex).getNomMaison();
            case 2:
                return listeMaison.get(rowIndex).getListePiece().size();
            case 3:
                return listeMaison.get(rowIndex).getListePiece().get(rowIndex).getListeComposant().size();      
            case 4:
                return listeMaison.get(rowIndex).getListePiece().get(rowIndex).getTempInterne();          
            default:
 
                  return null; //Ne devrait jamais arriver
        }
    }
 
    public void addMaison(Maison m) {
        listeMaison.add(m);
 
        fireTableRowsInserted(listeMaison.size() -1, listeMaison.size() -1);
    }
 
    public void removeMaison(int rowIndex) {
        listeMaison.remove(rowIndex);
 
        fireTableRowsDeleted(rowIndex, rowIndex);
    }
}
et voici mon fichier XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?xml version="1.0" encoding="UTF-8"?>
<Maisons>
  <Maison User="pisix" Nom="pisix">
    <Pieces>
      <piece nom="Chambre" temperature="0.0">
        <composant type="Televiseur">
          <nom>smartphone</nom>
          <degreEmissionChaleur>0.2</degreEmissionChaleur>
          <qteChaleurMaxEmise>4000.0</qteChaleurMaxEmise>
          <qteConsommeUniteTemps>600.0</qteConsommeUniteTemps>
          <niveauCons>2</niveauCons>
          <SourceEnergie>sourcesEnergie.Electricite@e1899b</SourceEnergie>
          <EtatComposant>false</EtatComposant>
        </composant>
        <composant type="Televiseur">
          <nom>tv</nom>
          <degreEmissionChaleur>0.2</degreEmissionChaleur>
          <qteChaleurMaxEmise>4000.0</qteChaleurMaxEmise>
          <qteConsommeUniteTemps>600.0</qteConsommeUniteTemps>
          <niveauCons>2</niveauCons>
          <SourceEnergie>sourcesEnergie.Electricite@1113622</SourceEnergie>
          <EtatComposant>false</EtatComposant>
        </composant>
      </piece>
      <piece nom="salon" temperature="0.0" />
      <piece nom="cuisine" temperature="0.0" />
    </Pieces>
  </Maison>
</Maisons>