Bonjour pour tous,
J’ai implémenté un code java qui construit une interface contenant une barre d’outils nommée jToolBar.
Mon but est de conserver dans un fichier XM tout changement de l’interface issu lors de son utilisation
C'est-à-dire conserver lors de la fermeture de l’interface, sa position, sa longueur, sa largeur et la position de la barre d’outil
J’ai réussi de conserver tous ces derniers,
sauf la position de la barre d’outils qui se transforme toujours à 0 même s’elle n’est pas nulle
Voici le code utilisé :
Lorsque l’ interface se ferme j’appelle cette classe :
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 public class XMLReadWrite { public static void xmlOutputWrite(String fichierXML,Interface m)throws Exception { try {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //Récupère une instanxce de la classe DocumentBuilder DocumentBuilder parser = factory.newDocumentBuilder(); //Effectue le parsing avec récupération du noeud DOM Document Document document = parser.parse(fichierXML); StreamResult result1=new StreamResult(fichierXML ); DOMSource source =new DOMSource(document); //Element utilisateur = document.getDocumentElement(); String xpath = "/application/interface"; Element utilisateur = document.getElementById(xpath); Node result = XPathAPI.selectSingleNode(document, xpath); utilisateur = (Element)result; System.out.println("avant changement" ); utilisateur.setAttribute("longueur",String.valueOf(m.getHeight() )); utilisateur.setAttribute("largeur",String.valueOf(m.getWidth()) ); utilisateur.setAttribute("absc",String.valueOf(m.getX() ) ); utilisateur.setAttribute("ordon",String.valueOf(m.getY() ) ); String xpath1 = "/application/interface/barre-outil"; Element utilisateur1 = document.getElementById(xpath1); Node result2 = XPathAPI.selectSingleNode(document, xpath1); utilisateur1 = (Element)result2; utilisateur1.setAttribute("abscisse",String.valueOf(m.jToolBar.getX())); utilisateur1.setAttribute("ordonne",String.valueOf(m.jToolBar.getY())); utilisateur1.setAttribute("oriontation",String.valueOf(m.jToolBar.getOrientation() )); try { TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.transform(source,result1); } catch (TransformerConfigurationException e) { System.out.println(e.getMessage()); } } catch (FactoryConfigurationError e) { System.out.println( "impossible de localiser une classe de construction"); } }
La fonction main est crée dans la classe Interface, voici le code de la fonction main :
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 class fermer extends WindowAdapter { Interface interface; public XMLReadWrite xx; fermer(Interface ma) {interface=ma;} public void windowClosing(WindowEvent e) { try { xx. xmlOutputWrite("exem.XML",interface); } catch (Exception ex) { ex.printStackTrace(); } System.exit(0) ; }}
Voici le fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static void main(String[] args) throws Exception { Interface m = new Interface(); m.addWindowListener(new fermer (m)) ; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8" ?> - <application> - <interface nom="m" longueur="501" largeur="696" absc="193" ordon="43"> <barre-outil nom="jToolBar" abscisse="0" ordonne="0" oriontation="1" /> </interface> </application>
longeur : c’est la longueur de l’interface
largeur :c’est le largeur de l’interface
absc :c’est l’abscisse de l’interface
ordon :c’est l’ordonnée de l’interface
abscisse : c’est l’abscisse de la barre d’outils
ordonne : c’est l’ordonnée de la barre d’outils
oriontation=1 :c'est-à-dire une barre d’outils verticale
oriontation=0 : c'est-à-dire une barre d’outils horizontale
toujours ,je trouve les bonnes valeurs dans les attributs : longeur ,largeur ,absc ,ordon ,oriontation
Mais les valeurs des attributs abscisse, ordonne qui concernent la position de la barre d’outils sone toujours égales à 0 même s’il sont différents à 0
S’il vous plait aider moi.
Et merci
Partager