Bonjour, mon but est de créer une liste contenant des objet panel ayant des attributs et une liste l'objet sur le panel. L'objet peut être un bouton, un texte, un graphique, bref n'importe quoi. Il peut y avoir au plus 10 éléments dans le panel.
Tout d'abord, pour que le logiciel soit éditable par n'importe qui, il va se construire en lisant un fichier XML. Le voici :

Code xml : 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
<?xml version="1.0" encoding="UTF-8"?>
<application>
<panel>
<panelId>1</panelId> <!--nom-->
<sizeH>200</sizeH>
<sizeV>320</sizeV>
<panelBackgroundR>11</panelBackgroundR>
<panelBackgroundG>75</panelBackgroundG>
<panelBackgroundB>200</panelBackgroundB><!--system RGB-->
<panelIcon>pictures/set.gif</panelIcon>
<text>
<textFont>"Serif"</textFont>
<textSize>10</textSize>
<textBoxHPos>63</textBoxHPos>
<textBoxVPos>52</textBoxVPos>
<textColorR>255</textColorR>
<textColorG>255</textColorG>
<textColorB>255</textColorB>
<textsentence>Tjay Tjiook</textsentence>
</text>
</panel>
</application>
Ensuite, j'ai une classe qui va lire le fichier XML pour créer les objets. J'en suis là. J'ai une erreur dans cette classe car je ne peux pas ajouter d'objet Panel à ma liste. Je n'arrive pas à corriger cette 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
public class XMLReader {
 
private org.jdom.Document document;
private Element root;
private Element current;
private List<Object> listElement = new ArrayList<Object>();
private SAXBuilder sbx;
public XMLReader () throws JDOMException {
this.sbx = new SAXBuilder();
try {
this.document = sbx.build(new File("configuration.xml" ));
} catch (IOException ex) {
Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
}
 
}
 
public List<Panel> getListPanel (String fille) {
 
List<Panel> listPanel = new ArrayList();//la liste des panel que l'on va retourner. Pour l'instant elle est vide !!!
Element mere = document.getRootElement();
listPanel = mere.getChildren(fille);//la liste contient tous les noeuds dont le nom est de type panel
Iterator itr = listPanel.iterator();//on créé un itérateur sur notre liste
while (itr.hasNext()) {
Element current = (Element) itr.next();//on recrée un élément courrant a chaque tour de boucle afin de pouvoir utiliser les methodes propores
//au éléments comme selectionner un noeud fils
Panel unPanel = new Panel();
listPanel.add(unPanel);
}
System.out.println(listPanel);
return listPanel;
 
}
}
Je vous passe aussi la classe Panel. Pour l'instant elle est toute simple, pas d'attribut ni rien, je les ajouterais par la suite.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class Panel {
 
 
public Panel () {
 
}
}
Merci de votre aide