IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

important fichier XML+ code Java


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut 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 : 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");
                    }
       }
    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
     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 : 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)) ;
        }
    Voici le fichier XML :



    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

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    C'est pas un pb de xml, faut voir pourquoi la méthode Interface.getX() renvoie toujours 0.
    Sinon c'est peut être juste une position relative au conteneur, si tu veux l'absolue il faudrait sommer recursivement la position de chaque container parent.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 43
    Par défaut
    Bonjour,

    Pour recuperer la position d'un composant graphique, utilise la fonction getLocation de ton composant.

    Bonne journée

    lulu

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut 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

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Je ne sais pas sur quelle API (swing, awt, swt, autres?) ton "Interface" est implémenté, mais je suppose qu'un composant peut appeller son parent ou container avec un getParent() ou getContainer(). Ce composant aura aussi un getLocation qui lui sera peut être valorisé. Le mieux serait d'itérer de getParent() en getParent tant que ce dernier n'est pas null et de sommer les getLocation().
    Un débugger pourrait aider également.

  6. #6
    Membre éclairé Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Par défaut
    avec ce Code tu peux serialiser-->xml ton interface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                  FileOutputStream fos = new FileOutputStream("button.xml");
                  XMLEncoder xEnc = new XMLEncoder(fos);
     
                  xEnc.writeObject(new JButton("Click Me"));

Discussions similaires

  1. [XPATH] changer des attributs d'un fichier Xml + code Java
    Par RouRa22 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/03/2008, 09h55
  2. Importation fichier xml
    Par kastor_lapon dans le forum WinDev
    Réponses: 1
    Dernier message: 01/07/2005, 11h54
  3. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  4. [DOM] Ecriture d'un fichier XML en java
    Par fidififouille dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 12/05/2004, 09h32
  5. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo