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 :

générer arborescence d'un fichier XML dans une interface graphique


Sujet :

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

  1. #1
    Membre du Club
    générer arborescence d'un fichier XML dans une interface graphique
    Bonjour à tous,

    La question à déjà dû être posée mais sincèrement, je n'arrive pas à comprendre. J'ai l'impression de me mélanger les pinceaux.
    En effet, j'aimerais générer une arborescence dynamique issue d'un fichier XML visualisable dans une interface graphique.

    Je ne sais pas si JTree est la bonne solution sachant que j'ai importé le package JDOM2 à mon projet JAVA sur Eclipse.

    Merci d'avance pour vos réponse


  2. #2
    Modérateur

    Salut,

    Un JTree peut être une solution. Tout dépend ce que tu cherches à faire : visualiser, visualiser et éditer... Disons que le JTree est une solution rapide, mais pas forcément la plus jolie (même en travaillant bien les renderers), ou la plus ergonomique pour faire de la saisie. Cela dépend également de la structure du XML et comment on veut faire le rendu. Par exemple, s'il y a des attributs, avec un JTree, il faudra les afficher comme des sous-nœuds, donc pouvoir les distinguer d'une façon ou d'une autre des sous-éléments (on peut aussi utiliser une vue de type treeview (arbre avec plusieurs colonnes), ou JTree + JPanel), si le nombre d'attributs est limité). Enfin, cela dépend si le but est d'afficher n'importe quel XML, ou des XML particuliers : on pourra préféré un affichage "métier" qui n'a pas forcément de rapport direct avec la structure arborescente d'un XML.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Merci beaucoup pour ta réponse.

    Citation Envoyé par joel.drigo Voir le message

    Un JTree peut être une solution. Tout dépend ce que tu cherches à faire : visualiser, visualiser et éditer... Disons que le JTree est une solution rapide, mais pas forcément la plus jolie (même en travaillant bien les renderers), ou la plus ergonomique pour faire de la saisie. Cela dépend également de la structure du XML et comment on veut faire le rendu. Par exemple, s'il y a des attributs, avec un JTree, il faudra les afficher comme des sous-nœuds, donc pouvoir les distinguer d'une façon ou d'une autre des sous-éléments (on peut aussi utiliser une vue de type treeview (arbre avec plusieurs colonnes), ou JTree + JPanel), si le nombre d'attributs est limité).
    Ce que je cherche dans un premier temps c'est de visualiser l'arborescence comme l'image ci-dessous :



    Comme le montre l'image ci-dessus, j'aimerais une interface qui permette à l'utilisateur de se promener dans l'arborescence en ayant la possibilité d'afficher ou pas les sous-nœud. Bien entendu, je n'exclu pas la possibilité de faire la saisie, mais disons que ce n'est pas pour l'immédiat.
    Dans mon fichier XML, chaque nœud est de 2 ou 3 attributs. Néanmoins les attributs servent uniquement à donner un nom au nœud et à dire s'il s'agit d'un groupe contenant des nœud fils.

    Enfin, cela dépend si le but est d'afficher n'importe quel XML, ou des XML particuliers : on pourra préféré un affichage "métier" qui n'a pas forcément de rapport direct avec la structure arborescente d'un XML.
    Que veux-tu dire par affichage métier ?

  4. #4
    Modérateur

    Un JTree est adapté pour faire une interface comme celle de l'image que tu montres.
    Citation Envoyé par Miigui Voir le message
    Que veux-tu dire par affichage métier ?
    Un affichage orienté fonctionnel par opposition à la structure technique du fichier. Au lieu d'afficher une arborescence d'éléments et d'attributs directement, afficher des informations dans une forme qui a du sens par rapport à ce qu'on gère et/ou comment on veut pouvoir le gérer. Par exemple, on peut avoir un XML qui représente un graphe, avec une arborescence de nœuds et une arborescences d'arêtes, qu'on peut donc afficher dans un JTree exactement sous cette forme (deux items, un pour les nœuds, un pour les arêtes, avec autant de sous-items respectivement de nœuds et d'arêtes), ou sous forme graphique avec des ronds pour le nœuds et des traits pour les arêtes (le graphe représenté par le fichier XML donc), ou sous forme de deux JList de nœuds, une avec tous les nœuds et l'autre avec les nœuds reliés à celui sélectionné dans la première, ou même sous forme de JTree de nœuds dont les sous-items sont les nœuds reliés (et on utilise le drag-n-drop pour les relier, etc.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Très bien je comprends.

    Que penses tu si je transforme mon fichier XML en une arborescence JDOM pour ensuite générer un JTree ? Est-ce possible ?

  6. #6
    Modérateur

    Citation Envoyé par Miigui Voir le message

    Que penses tu si je transforme mon fichier XML en une arborescence JDOM pour ensuite générer un JTree ?
    Pourquoi pas.

    Citation Envoyé par Miigui Voir le message

    Est-ce possible ?
    Oui.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.