Thomas DeWeese wrote:
You are close, basically you want to make your class implement the Overlay interface from Batik, and associate your mapIt instance with the canvas as an overlay
Well I guess I'm getting there, but I need more help. Perhaps a good restructure of my app is in order?
I got this now, and of course it still doesn't work. (I didn't quite understand James' ideas):
import java.awt.*; import java.awt.Graphics2D; import javax.swing.*;
import org.apache.batik.swing.JSVGCanvas; import org.apache.batik.swing.gvt.GVTTreeRendererAdapter; import org.apache.batik.swing.gvt.GVTTreeRendererEvent; import org.apache.batik.swing.gvt.Overlay;
public class mapIt implements Overlay{
public static void main(String[] args) {
JFrame frame = buildGUI();
frame.setSize(200, 600);
frame.setVisible(true);
}
public static JSVGCanvas buildCanvas(){ final JSVGCanvas canvas = new JSVGCanvas();
canvas.setBackground(Color.green); canvas.setURI("file:/home/riis/P2/maps/gangen.svg");
canvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() { public void gvtRenderingCompleted(GVTTreeRendererEvent e) { System.out.print("Rendering done"); Graphics box = canvas.getGraphics(); paint(box); } });
canvas.getOverlays().add(new mapIt()); return canvas;
}
public static JFrame buildGUI(){
JFrame f = new JFrame("PANTS - MapIt");
JSVGCanvas svgCanvas = buildCanvas();
JSlider slider = new JSlider();
JPanel panel = new JPanel(new BorderLayout());
panel.add("North", slider);
panel.add("Center", svgCanvas);
f.getContentPane().add(panel);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); return f; }
public static void paint(Graphics g) {
g.setColor(java.awt.Color.RED);
g.fillRect(10,10,100,100);
}
}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]