Hi,
ich habe ein Programm zum Zeichnen von Diagrammen geschrieben.
Ein JLayeredPane enthält eine beliebige Anzahl transparenter JPanels, die geometrische Figuren und Textelemente enthalten.
Nun möchte ich die Gesamtgrafik - also den Inhalt des JLayeredPane, den Inhalt aller JPanels - gerne als SVG abspeichern.
Vermutlich ist Batik als mächtigste SVG-Bibliothek dafür die sinnvollste Wahl.
Ich finde aber nicht so recht heraus, ob es eine elegante Möglichkeit gibt, mein Vorhaben umzusetzen:
ich habe ein Programm zum Zeichnen von Diagrammen geschrieben.
Ein JLayeredPane enthält eine beliebige Anzahl transparenter JPanels, die geometrische Figuren und Textelemente enthalten.
Nun möchte ich die Gesamtgrafik - also den Inhalt des JLayeredPane, den Inhalt aller JPanels - gerne als SVG abspeichern.
Vermutlich ist Batik als mächtigste SVG-Bibliothek dafür die sinnvollste Wahl.
Ich finde aber nicht so recht heraus, ob es eine elegante Möglichkeit gibt, mein Vorhaben umzusetzen:
- ich möchte die Grafik sowohl im Programm darstellen als auch als SVG abspeichern können
- Bisher kann ich das nur realisieren, indem ich in der paintComponent-Methode meines JPanels parallel sowohl auf das Graphics-Objekt zeichne als auch auf ein SVGGraphics-Objekt, dass ich von jedem JPanel verwalten lasse. Ich führe also jeden Zeichenbefehl doppelt aus, also zB g.drawLine(...) und g2d.drawLine(...)
- Dann habe ich zwar lauter SVG-Codes für die einzelnen JPanels, aber ich habe noch nicht das Gesamtdiagramm.
Muss ich mir das dann wirklich einzeln selbst berechnen, also die Position der JPanels innerhalb des JLayeredPanes abfragen, die enthaltenen Elemente wie Rechtecke oder Linien um diese Werte verschieben und die Positionen in dem SVG-Code aktualisieren und alle Elemente dann abschließend händisch in ein einziges, neues SVG-Dokument kopieren?
Oder gibt es eine bessere Möglichkeit?