Dessiner une cercle avec Jgraph

Signaler
Messages postés
20
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
16 mai 2011
-
 inconnue -
Salut,
Je veux dessiner une cercle avec Jgraph, alors j'au fait deux classes la première nomée class CircleView et son code est le suivant :
public class CircleView extends VertexView {
private static MyRenderer renderer = new MyRenderer();
public CircleView() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

public CircleView(Object object) {
super(object);
}

public CellViewRenderer getRendererCompenement() {
return renderer;
}

public Point2D getPerimeterPoint(EdgeView edge, Point2D source, Point2D p) {
if (getRenderer() instanceof MyRenderer)
return ( (MyRenderer) getRenderer()).getPerimeterPoint(this, source, p);
return super.getPerimeterPoint(edge, source, p);
}

private void jbInit() throws Exception {}

public static class MyRenderer extends VertexRenderer {
public Dimension getPreferredSize() {
Dimension d = super.getPreferredSize();
d.width += d.width / 5;
d.height += d.height*4;
return d;
}

public void paint(Graphics g) {
int b = borderWidth;
Dimension d = getSize();
int height = d.height - b;
boolean tmp = selected;
// create 2D by casting g to Graphics2D
Graphics2D g2 = (Graphics2D) g;

if (super.isOpaque()) {
g.setColor(super.getBackground());
if (gradientColor != null && !preview) {
setOpaque(false);
g2.setPaint(new GradientPaint(0, 0, getBackground(), getWidth(), getHeight(), gradientColor, true));
}
g2.fillOval(b, b, height, height);
}
try {
setBorder(null);
setOpaque(false);
selected = false;
super.paint(g);
}
finally {
selected = tmp;
}
if (selected) {
g2.setStroke(GraphConstants.SELECTION_STROKE);
g2.setColor(highlightColor.gray);
g2.drawOval(b, b, height, height);
}
}
}

*******************
La deuxième classe est une classe de test de la première classe son code est le suivant:
public class Test{
public static void main(String[] args) {
GraphModel model = new DefaultGraphModel();

JGraph graph = new JGraph(model);

//graph.getGraphLayoutCache().insert(cells);
graph.getGraphLayoutCache().setFactory(new DefaultCellViewFactory() {
// CellViews for each type of cell
protected VertexView createVertexView(Object cell) {

return new CircleView(cell);
}
});

JFrame frame = new JFrame();
frame.getContentPane().add(new JScrollPane(graph));
frame.pack();
frame.setVisible(true);
}
}
*********************
mais lorsque je fais l'éxécution une frame vide est affiché , le cercle n'est pas affiché.
Svp , est ce que quelque'un peux m'aider et m'expliquer c'est quoi le problème et comment le résoudre.
Merci

5 réponses


Tu n'as pas besoin de ça, il y a déjà de quoi dessiner des cercles, des ovales et des rectangles dans JGraph. Au lieu de réinventer l'eau chaude, regarde bien dans la documentation, elle est plutôt bien rédigée. Pour utiliser JGraph, il me semble que tu as même une sorte d'éditeur qui te génère le code.

Bonsoir,le lient donné est inaccessible veuillez m'aider s'il vous plait!
Messages postés
4
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
9 juillet 2009

bonjour

aidez moi a dessiner deux rectangles avec jgraph lies par une arete portant un label

merciiiiiiiii
Messages postés
20
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
16 mai 2011

Salut,
Juste consulte le JGraph manuel, il est gratuit et tu peut télécharger, il aya dans le manuel un exemple de dessin de deux rectangle lié par une arrête étiqueté.
Bonne chance
Messages postés
4
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
9 juillet 2009

merci [../auteur/IMENMANNOU/1270495.aspx imenmannou]

oui ca marche, mais jai encore un petit probleme

a chaque fois que j execute mon code jobtiens deux rectangles lies avec une arete, ya t il un moyen de garder ce graphe moyennant un fichier xml

cela va me permettre de garder mon graphe apres avoir redimensionner mes rectangles

merci d avance
Messages postés
1
Date d'inscription
vendredi 10 décembre 2010
Statut
Membre
Dernière intervention
29 mars 2011

salut je besoin d'aide je veux dessiner un graphe avec des noeuds et arretes et puis trouver le plus court chemin de une noeud à autre mais pas par l'algorithme de DIJKSTRA alors stp aide moi