Hi, I am trying to load SVG document created in third party
application. Display it in my Java application, and detect mouse
clicks on different svg elements.
I am new to batik so probably I am doing something wrong. Here is my code:

               String svgUri = new File("data/test.svg").toURI().toString();

               JSVGCanvas svg = new JSVGCanvas();
               try
               {
                       String parser =
XMLResourceDescriptor.getXMLParserClassName();
                       SAXSVGDocumentFactory f = new
SAXSVGDocumentFactory(parser);
                       SVGDocument doc = (SVGDocument)f.createDocument(svgUri);


                       EventTarget node = (EventTarget)
doc.getElementById("rect1");  //
just for test, such element exists.
                       if(node != null)
                       {
                               node.addEventListener("click", new
EventListener()
                               {
                                      �...@override
                                       public void handleEvent(Event evt)
                                       {
                                               int x =
((DOMMouseEvent) evt).getClientX();
                                               int y =
((DOMMouseEvent) evt).getClientY();

JOptionPane.showMessageDialog(GamingInterfaceClient.this,
"Click: " + x + "," + y);
                                       }
                               }, false);
                       }

                       svg.setSVGDocument(doc);
               }
               catch(IOException ex)
               {
                       // ...
               }

then I just display JSVGCanvas svg inside a panel on JFrame.

The problem is that mouse clicks does not get detected, no matter where I click.

Any code examples how to make that work?


-- 

Thanks,
Mike                                    mailto:[email protected]

Reply via email to