important fichier XML+ code Java
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é :
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
| 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");
}
} |
Lorsque l’ interface se ferme j’appelle cette classe :
Code:
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) ;
}} |
La fonction main est crée dans la classe Interface, voici le code de la fonction main :
Code:
1 2 3 4 5 6 7
| public static void main(String[] args) throws Exception
{
Interface m = new Interface();
m.addWindowListener(new fermer (m)) ;
} |
Voici le fichier XML :
Code:
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
Important fichier XML + code Java
Merci de vos aides,Mais en preumier lieu ,comment je peux sommer recursivement la position de chaque container parent?
et en deuxieme lieu ,j'ai utilisé la fonction getLocation.
Malheureusement ,elle retourne aussi un point de coordonnées (0,0) .
s'il vous plait aider moi .
c'est important pour mes etudes et Merci