8 votes

Comment afficher une hiérarchie d'arbre en Java ?

J'ai une table dans une base de données nommée "Process"

Cette table de processus a 3 champs :

  • process_id
  • process_name
  • process_parent_id

Maintenant, je veux afficher cette hiérarchie parent-enfant sous forme graphique. Pourriez-vous me suggérer ce qui suit s'il vous plaît :

Q1. Quelle structure de données serait préférable d'utiliser pour obtenir des données de la base de données et les stocker dans cette structure de données ?

Q2. Comment afficher cet arbre (hiérarchie de processus) sous forme graphique ?


EDITION :

Je veux un format graphique quelque chose comme ceci :

Tree hierarchy

16voto

Kentaree Points 193

Swing dispose d'un contrôle intégré pour afficher des données sous forme d'arborescence appelé JTree. Il fournit également un modèle de données appelé DefaultTreeModel que vous pouvez utiliser pour stocker les données. Ce lien donne une assez bonne explication de l'utilisation d'un JTree avec un modèle de données.

[Éditer]:

Pour répondre à votre question mise à jour, un graphe comme celui-ci pourrait très bien être géré par JGraph qui fournirait également le modèle de données qui semble fonctionner de manière similaire au modèle d'arborescence fourni par Swing.

5voto

Adamski Points 29884

Comme d'autres l'ont suggéré, l'utilisation de JTree est une solution possible. Cependant, si vous souhaitez avoir plus de contrôle sur l'apparence de votre arbre, je suggère de consulter la librairie de graphiques JUNG. Cela peut potentiellement vous donner d'excellents résultats mais nécessitera plus de travail.

3voto

Pikrass Points 2671

Pour la hiérarchie sous forme graphique, que diriez-vous d'un JTree ? http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

2voto

JuanZe Points 4519

Re Q1: Vous pourriez trouver sur internet plusieurs implémentations Java de structure d'arbre, par exemple cet arbre générique.

Re Q2: Une alternative est d'utiliser JTree. Consultez le tutoriel Java sur Comment utiliser les arbres

JGraphT pourrait être un bon point de départ pour construire quelque chose comme votre exemple. Consultez la démo sur http://jgrapht.sourceforge.net/visualizations.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X