# Java - Vektor Grafik - Probleme beim Zeichnen mit Schleifen ohne Ende



## koddy013 (16. Juni 2010)

Hallo zusammen,

ich habe Probleme beim Aneigen von Vektor Grafik mit Java.
Also für die Vektor Grafik, nutze ich BATIK für den Bibliotheken.

Kurzgesagt habe ich das Vektorgrafik (svg) hergestellt.
Jetzt wollte ich dieses hergestellten Vektorgrafik auf einem JSVGCanvas darstellen.
Da diesen Canvas liegt auf einem Panel ist, schreibe ich die Code wie folgendes

```
ProfilPanelRight =  new JPanel (){
    public void paint(Graphics g) {
            super.paint(g);
            System.out.println("methode doDraw dari ProfilPanelRight");
            ProfilPanelRight.setOpaque(true);
            ProfilPanelRight.add(canvas1);
            canvas1.setURI(new File("ProfilRight.svg").toURI().toString());
            canvas1.repaint();
    }
}
```

Jetzt kommt das Problem, und zwar wird diese methode in einen endlosen Schleife gerufen. Auch kommt die Zeichnung nicht.
Ich habe versuchen auch, diese override von paint-methode direkt unter canvas1. Aber dasselbe Ergebnis bekomme ich.
Weiss jemand, was soll ich tun, oder wie kann ich den Code verbessern?

p.s. als IDE benutze ich Netbeans

Danke im voraus für jede Hilfe.

Liebe Grüße,


----------



## Carron (16. Juni 2010)

Hi koddy,

deine Schleife entsteht dadurch, dass die überschriebene *paint()*-Methode jedes Mal aufgerufen wird, wenn das *ProfilPanelRight* neu dargestellt werden muss (deshalb hast du sie vermutlich überschrieben  ).
Dieser Fall allerdings ein, wenn du eine Darstelliungseigenschaft änderst (zum Beispiel *ProfilPanelRight.setOpaque(true)*) oder eine Kind-Komponente hinzufügst (so geschehen beim Aufruf von *ProfilPanelRight.add(canvas1)*).

Ehrlich gesagt sehe ich keinen Grund die *paint()*-Methode überhaupt zu überschreiben. Wenn du alles, was auf dein _sysout_ folgt nach dem normalen Konstruktoraufruf von ProfilPanelRight machst, sollte dich das schon einen Schritt weiter bringen.

EDIT: Darüber hinaus sollte der Aufruf *canvas1.setURI("ProfilRight.svg")* einen vergleichbaren Effekt bringen wie *canvas1.setURI(new File("ProfilRight.svg").toURI().toString())*...


Grüße
Carron


----------

