Lasse Riis wrote:

No, but It won't compile without it either. At least not here. My IDE tells me to make it static, but i don't understand why.

But the problem was that you were using 'java.awt.Color.RED' not 'java.awt.Color.red'. What is below works.

Someone should do a thorough howto on using an overlay in a jsvgcanvas and put it in the wiki. At least I think so :)

Using an overlay is pretty trivial, your problems seem to mostly be with the Java language. This is not an appropriate forum to learn Java. There are _lots_ of resources for that.

-----

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:/C:/Apps/cygwin/home/l449433/dev/batik/xml-batik/samples/anne.svg");

        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 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]



Reply via email to