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

Java Discussion :

Générer un arbre à partir des données


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 64
    Points
    64
    Par défaut Générer un arbre à partir des données
    Bonjour à tous,

    J'ai un ensemble des données qui contiennent des relations d'héritage (arbre d'héritage). ces relations sont extrait d'une manière automatiques d'une arbre. Mon objectif est de représenter ces relations sous forme d'une arbre pour qu'il soient plus lisible (Si possible des noeuds colorés avec des couleurs différents).

    Avez-vous une idée comment je peux faire s'il vous plaît ?

    Toute information sera le bien venue et Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Pourquoi ne pas utiliser un JTree par exemple ?

    En utilisant un plus un TreeCellRenderer? tu pourras customiser l'affichage des éléments de l'arbre.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup pour votre réponse, mais JTree est un peu compliqué surtout si je veux appliquer des algorithmes à cette arbre (réduction, classification et tri des noeuds de cette arbre). Egalement, c'est un peu compliqué de présenter ces arbres par des formes ergonomiques ( des cercles colorés ou autre ou ajouté des labels à ces cercles ou aux liens entre les cercles).

    Je pense qu'il y-a sûrement des api qui permettent de bien gérer les arbres et même des algorithmes classique ou très répandue dans la littérature qui permettent la classification, réduction ou le tri des arbres...

    Je vous remercie encore une fois pour votre réponse.

    Toute information sera le bien venue et Merci d'avance.

    Citation Envoyé par wax78 Voir le message
    Pourquoi ne pas utiliser un JTree par exemple ?

    En utilisant un plus un TreeCellRenderer? tu pourras customiser l'affichage des éléments de l'arbre.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Peut être qu'une représentation en graphe serait plus appropriée dans ce cas, si j'ai bien compris l'idée.

    Après pour les opérations sur "l'arbre" je ne sais pas ce qui existe a ce niveau.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Peut être qu'une représentation en graphe serait plus appropriée dans ce cas, si j'ai bien compris l'idée.

    Après pour les opérations sur "l'arbre" je ne sais pas ce qui existe a ce niveau.
    désolée pour cette réponse tardive !

    Non c'est une arbre car il n'y-a des relations horizontales ! Il y-a juste des relations verticales (avec les parents)

  6. #6
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    slt, si tu veut représenter chaque nœud de l'arbre en un objet affiché, il est possible de dessiner en 2D avec JAVA des rectangles, des cercles etc...
    Sinon, si tu veut stocker les différentes références vers les nœuds de ton arbre, et que tu ne veut pas utiliser un JTree, essaye la class List, ou ArrayList, ou VECTOR.
    A+ .

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par daniel1985 Voir le message
    désolée pour cette réponse tardive !

    Non c'est une arbre car il n'y-a des relations horizontales ! Il y-a juste des relations verticales (avec les parents)
    Pour moi un arbre n'est qu'une structure (dont la forme graphique importe peu) qui relies de noeuds ensemble avec des relation Un parent a plusieurs enfants.

    Après qu'il soit vertical ou horizontal ce n'est qu'une représentation visuelle ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Pour moi un arbre n'est qu'une structure (dont la forme graphique importe peu) qui relies de noeuds ensemble avec des relation Un parent a plusieurs enfants.

    Après qu'il soit vertical ou horizontal ce n'est qu'une représentation visuelle ...
    non non je parle des relations qui peuvent être verticales ou horizontales. en effet j'ai voulu dire que si par exemple j'ai le deux fils manu et clémont ayant comme pére Mark (relation verticale dans ce cas) et également j'ai evelyne et roza fils de georges. Dans notre cas, on'a pas besoin de représenter les relations entre les fils de georges et les fils de Mark. C'est pourquoi j'ai dis que j'ai juste des relations verticales: J'espère que j'ai bien clair maintenant

    En effet, maintenant et à partir de quelques codes sources j'ai pu déterminé des relations de la forme:
    a est le fils de b
    c est le fils de d
    f est le fils de d

    Comme vous remarquez je peux pas déterminer directement les fils de d ou de b. Il me faut donc dans l'enregistrement grouper ces relations pour que je puisse avoir dans ce cas

    Noeud niveau 1 : b et d
    Noeuds dans le niveau 2: a fils de b et (c,f) fils de d

    Comment vous me recommandez d'enregistrer ces données surtout que je veux faire beaucoup des traitement sur ces données : donc ils doivent être bien représenté pour bien gérer ces données, également, quels api à utiliser pour bien présenter ces données graphiquement (généralement ils sont des centaines des noeuds donc il sera préférable dans plusieurs cas de représenter ces relations par des graphiques ergonomiques).

    Espérons d'être plus clair maintenant et je reste à votre disposition pour toute information complémentaire.
    Merci d'avance

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Ok, je crois que je vois, tout ne part pas spécialement d'une seule racine dans ton modéle (bien que une racine invisible qui serait parent de tout les parents pourrait etre envisagé). Un peu comme ici.

    Je verrais bien pour l'affichage etc la librairie JUNG (il en existe d'autres). Je pense que ca t'aidera déjà pour la partie représentation. Avec un petit système de layouting des noeuds du graph ca pourrait être bien.

    http://jung.sourceforge.net/index.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Ok, je crois que je vois, tout ne part pas spécialement d'une seule racine dans ton modéle (bien que une racine invisible qui serait parent de tout les parents pourrait etre envisagé). Un peu comme ici.

    Je verrais bien pour l'affichage etc la librairie JUNG (il en existe d'autres). Je pense que ca t'aidera déjà pour la partie représentation. Avec un petit système de layouting des noeuds du graph ca pourrait être bien.

    http://jung.sourceforge.net/index.html
    Je suis désolé pour cette réponse tardive. J'ai voulu ajouter que tous les noeuds appartiennent au même racine. En effet nous aurons une racine commune pour tous.

    Le problème est tout d'abord comment représenter cette arbre (les noeuds et les relations): Il sera mieux d'enregistrer ces données (avec les relations) dans des fichiers puis essayer d'extraire à chaque fois ces noeuds et les relations puis appliquer nos algorithmes ou bien enregistrer ces noeuds et les relations dans des bases des données (c'est un peu difficile pour moi pour le moment ). Pour le moment ces données sont statiques mais normalement il faut prendre en compte que des nouveaux fils ou parents peuvent changer ou que au moin les propriétés relative à chaque noeud peut changer !

    Toute information sera le bien venue et merci d'avance

  11. #11
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Pour la représentation, tu peut définir une class avec comme attributs, les informations correspondantes a chaque nœud, et l'emplacement des fils. pour l'enregistrement, je te suggère un fichier structuré, a base de balise, XML par exemple, par contre, si ton arbre compte un nombre de nœud considérable, ça sera mieux d'utilisé une base de données, ou dans le cas ou tu veut protéger tes données.
    A+ .

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2010, 16h17
  2. Réponses: 4
    Dernier message: 13/04/2010, 07h03
  3. [VI-2003] Générer un organigramme à partir des données Excel
    Par Mimosa777 dans le forum Visio
    Réponses: 3
    Dernier message: 19/05/2009, 15h06
  4. Réponses: 1
    Dernier message: 19/11/2008, 18h51
  5. Générer un mail à partir des données d'un formulaire
    Par MortDansLAme dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 15h14

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