Hi,
There is a exception throw when I load any simple svg file by SVGApplication application.


Anybody can help me?

thanks!


java.lang.ExceptionInInitializerError
at org.apache.batik.swing.svg.JSVGComponent$BridgeUserAgent.getXMLParser
ClassName(JSVGComponent.java:2983)
at org.apache.batik.swing.svg.JSVGComponent$BridgeUserAgentWrapper.getXM
LParserClassName(JSVGComponent.java:2306)
at org.apache.batik.bridge.DocumentLoader.<init>(DocumentLoader.java:66)


at org.apache.batik.swing.svg.JSVGComponent$1.run(JSVGComponent.java:450
)
at org.apache.batik.swing.svg.JSVGComponent.stopThenRun(JSVGComponent.ja
va:642)
at org.apache.batik.swing.svg.JSVGComponent.loadSVGDocument(JSVGComponen
t.java:445)
at org.apache.batik.swing.JSVGCanvas.setURI(JSVGCanvas.java:459)
at SVGApplication$2.actionPerformed(SVGApplication.java:57)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
64)



import java.awt.*; import java.awt.event.*; import java.io.*; 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.svg.SVGDocumentLoaderAdapter;
import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;
import org.apache.batik.swing.svg.GVTTreeBuilderEvent;

public class SVGApplication {

   public static void main(String[] args) {
       JFrame f = new JFrame("Batik");
       SVGApplication app = new SVGApplication(f);
       f.getContentPane().add(app.createComponents());

f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(400, 400);
f.setVisible(true);
}
JFrame frame;
JButton button = new JButton("Load...");
JLabel label = new JLabel();
JSVGCanvas svgCanvas = new JSVGCanvas();


   public SVGApplication(JFrame f) {
       frame = f;
   }

   public JComponent createComponents() {
       final JPanel panel = new JPanel(new BorderLayout());

       JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
       p.add(button);
       p.add(label);

       panel.add("North", p);
       panel.add("Center", svgCanvas);

       // Set the button action.
       button.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent ae) {
               JFileChooser fc = new JFileChooser(".");
               int choice = fc.showOpenDialog(panel);
               if (choice == JFileChooser.APPROVE_OPTION) {
                   File f = fc.getSelectedFile();
                   try {
                       svgCanvas.setURI(f.toURL().toString());
                   } catch (IOException ex) {
                       ex.printStackTrace();
                   }
               }
           }
       });

// Set the JSVGCanvas listeners.
svgCanvas.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
label.setText("Document Loading...");
}
public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
label.setText("Document Loaded.");
}
});


       svgCanvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
           public void gvtBuildStarted(GVTTreeBuilderEvent e) {
               label.setText("Build Started...");
           }
           public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
               label.setText("Build Done.");
               frame.pack();
           }
       });

       svgCanvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
           public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
               label.setText("Rendering Started...");
           }
           public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
               label.setText("");
           }
       });

       return panel;
   }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to