Batik 事件监听器
Batik event listener
我正在尝试将 event listener
添加到 DOM element
Element image = svgDocument.createElementNS(Constants.SVG_NS, SVG_IMAGE_TAG);
image.setAttributeNS(Constants.SVG_NAMESPACE_XLINK_URI, SVGConstants.XLINK_HREF_QNAME, "file:///" + selectedDirectory.getPath());
image.setAttributeNS(null, SVGConstants.SVG_X_ATTRIBUTE, Integer.toString(0));
image.setAttributeNS(null, SVGConstants.SVG_Y_ATTRIBUTE, Integer.toString(0));
image.setAttributeNS(null, SVGConstants.SVG_WIDTH_ATTRIBUTE, Integer.toString(150));
image.setAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE, Integer.toString(150));
image.setAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE, Integer.toString(150));
// Listener
((EventTarget) image).addEventListener(
"click",
new org.w3c.dom.events.EventListener() {
@Override
public void handleEvent(Event evt) {
System.out.println("listener");
}
}, false);
svgDocument.getRootElement().appendChild(image);
但它根本不起作用。
有人知道问题出在哪里吗?
终于找到了解决办法:
svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_INTERACTIVE);
我正在尝试将 event listener
添加到 DOM element
Element image = svgDocument.createElementNS(Constants.SVG_NS, SVG_IMAGE_TAG);
image.setAttributeNS(Constants.SVG_NAMESPACE_XLINK_URI, SVGConstants.XLINK_HREF_QNAME, "file:///" + selectedDirectory.getPath());
image.setAttributeNS(null, SVGConstants.SVG_X_ATTRIBUTE, Integer.toString(0));
image.setAttributeNS(null, SVGConstants.SVG_Y_ATTRIBUTE, Integer.toString(0));
image.setAttributeNS(null, SVGConstants.SVG_WIDTH_ATTRIBUTE, Integer.toString(150));
image.setAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE, Integer.toString(150));
image.setAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE, Integer.toString(150));
// Listener
((EventTarget) image).addEventListener(
"click",
new org.w3c.dom.events.EventListener() {
@Override
public void handleEvent(Event evt) {
System.out.println("listener");
}
}, false);
svgDocument.getRootElement().appendChild(image);
但它根本不起作用。
有人知道问题出在哪里吗?
终于找到了解决办法:
svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_INTERACTIVE);