tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1138
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    koddy013 koddy013 ist offline Mitglied Bronze
    Registriert seit
    Apr 2010
    Beiträge
    37
    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
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    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,
    Geändert von koddy013 (16.06.10 um 14:46 Uhr)
     

  2. #2
    Avatar von Carron
    Carron Carron ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Berlin
    Beiträge
    61
    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
    Geändert von Carron (16.06.10 um 19:43 Uhr)
     

Ähnliche Themen

  1. Probleme auf ein Java Applet zu zeichnen
    Von Prophet05 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 12.11.07, 07:14
  2. Grafik in vektor grafik umwandeln
    Von michael825 im Forum Vektor-Programme
    Antworten: 3
    Letzter Beitrag: 06.08.07, 23:58
  3. Freehand fh10 Vektor Grafik als Vektor eps konvertieren
    Von Spitty im Forum Vektor-Programme
    Antworten: 1
    Letzter Beitrag: 09.05.07, 13:11
  4. Hover-Grafik macht beim Mozilla Probleme
    Von Joern Schreiber im Forum CSS
    Antworten: 3
    Letzter Beitrag: 29.06.05, 07:38
  5. Illusttrator CS - Vektor zeichnen
    Von josDesign im Forum Vektor-Programme
    Antworten: 2
    Letzter Beitrag: 21.06.04, 06:08

Stichworte