2010-03-04 7 views
6

Je vais devoir écrire un programme qui prend une liste de personnes et les relie entre elles d'une manière semblable à graphe orienté. L'aspect GUI de l'ensemble du projet est très important. Le graphique doit permettre beaucoup d'interaction. Comme sélectionner plusieurs personnes et cacher les autres, les déplacer.bibliothèques Open Source pour concevoir des graphiques orientés

De plus, le logiciel devra être en mesure de fournir d'autres types de GUI fonctionnalités telles que plusieurs onglets, zones de texte, etc.

L'application doit être tout à fait efficace. Comme dans, il doit être capable de gérer des centaines sinon des milliers de widgets. Par conséquent, je voudrais savoir quelles bibliothèques open source (à ce stade, le langage de programmation dans lequel elles sont écrites n'a pas d'importance - je veux juste un aperçu de tout ce qui est bon là-bas) me permettrait de développer cette pièce de logiciel? Que recommanderais-tu?

Editer: Pourriez-vous s'il vous plaît lien également à des tutoriels expliquant comment je pourrais programmer une interface graphique qui peut interagir avec le graphique généré? Par exemple des événements de souris.

Répondre

5

Que diriez-vous de JGraphT en combinaison avec JGraph.

Vérifiez ici pour simple demo avec l'interaction de base

+0

L'application de démo de JGraph Webstart est assez mignon: http://jgraph.com/jgraph.html Malheureusement, il semble que commercial? – dsummersl

+2

JGraph/JGraphX ​​ne sont pas commercial, ils sont sous licence BSD. Ce que vous faites aussi référence est mxGraph qui est une bibliothèque javascript par les mêmes gars http://www.jgraph.com/mxgraph.html. mxGraph est commercial – jitter

4

Jetez un oeil à Graphviz, en particulier son composant lefty. Cela devrait satisfaire vos besoins.

http://en.wikipedia.org/wiki/Graphviz

+0

Merci pour cela. Graphviz ressemble à ce que je devrais utiliser. Cependant, je préférerais utiliser un langage de programmation tel que Java ou Ruby pour mon logiciel. Auriez-vous un bon tutoriel montrant comment il est possible à partir d'une interface graphique (c'est-à-dire Tk, GTK, Qt ou Swing) d'ajouter un événement de souris lorsque l'utilisateur clique sur un nœud? Je n'ai pas été capable de comprendre moi-même comment faire cela. Merci pour votre temps. – Benjamin

1

Vous pouvez jeter un oeil à Dynagraph. Un article présentant Graphviz et Dynagraph est disponible here.

+0

Merci pour cela. Des tutoriels ou des librairies de liaison qui pourraient facilement permettre l'ajout d'événements tels que des clics de souris sur un nœud? – Benjamin

3

En fonction de votre objectif et les besoins réels, vous pourriez envisager de jeter un oeil à processing.org. Le site a beaucoup de démos et comme beaucoup d'autres bibliothèques, c'est gratuit. Utilisation de traitement ne nécessite pas d'apprendre beaucoup. Il est similaire à Java et écrit en Java, mais vous permet d'ignorer une grande partie de la structure et du code Java et de faire ce que vous voulez. Comme vous avez mentionné que vous voudriez utiliser x ou y pour coder, il semblerait que vous n'ayez pas pris de décision en matière de langage, alors cela pourrait valoir votre temps. Passez 15 minutes là-bas et regardez les démos pour voir si elle fournit ce que vous cherchez. Si la vitesse d'une solution unique est l'un de vos critères, cela pourrait le faire.

0

Ma première pensée était ILOG Views (pour Java, .Net, C++), maintenant détenue par IBM, mais leur prix est plutôt élevé. Ma deuxième pensée serait yFiles (pour Java ou .NET), peut-être en conjonction avec yEd (Java seulement).

Si cela ne le coupe toujours pas, jetez un oeil aux alternatives sur this list (plutôt non triées, certains outils ne sont pas open source, d'autres ne vous conviendront pas pour d'autres raisons).

Questions connexes