软件下载地址:
创建一个JSVGCanvas代码案例:importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
importorg.apache.batik.swing.JSVGCanvas;
importorg.apache.batik.swing.gvt.GVTTreeRendererAdapter;
importorg.apache.batik.swing.gvt.GVTTreeRendererEvent;
importorg.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
importorg.apache.batik.swing.svg.SVGDocumentLoaderEvent;
importorg.apache.batik.swing.svg.GVTTreeBuilderAdapter;
importorg.apache.batik.swing.svg.GVTTreeBuilderEvent;
publicclassSVGApplication{
publicstaticvoidmain(String[]args){
//CreateanewJFrame.
JFramef=newJFrame("Batik");
SVGApplicationapp=newSVGApplication(f);
//Addcomponentstotheframe.
f.getContentPane().add(app.createComponents());
//Displaytheframe.
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
f.setSize(400,400);
f.setVisible(true);
}
//Theframe.
protectedJFrameframe;
//The"Load"button,whichdisplaysupafilechooseruponclicking.
protectedJButtonbutton=newJButton("Load...");
//Thestatuslabel.
protectedJLabellabel=newJLabel();
//TheSVGcanvas.
protectedJSVGCanvassvgCanvas=newJSVGCanvas();
publicSVGApplication(JFramef){
frame=f;
}
publicJComponentcreateComponents(){
//Createapanelandaddthebutton,statuslabelandtheSVGcanvas.
finalJPanelpanel=newJPanel(newBorderLayout());
JPanelp=newJPanel(newFlowLayout(FlowLayout.LEFT));
p.add(button);
p.add(label);
panel.add("North",p);
panel.add("Center",svgCanvas);
//Setthebuttonaction.
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventae){
JFileChooserfc=newJFileChooser(".");
intchoice=fc.showOpenDialog(panel);
if(choice==JFileChooser.APPROVE_OPTION){
Filef=fc.getSelectedFile();
try{
svgCanvas.setURI(f.toURL().toString());
}catch(IOExceptionex){
ex.printStackTrace();
}
}
}
});
//SettheJSVGCanvaslisteners.
svgCanvas.addSVGDocumentLoaderListener(newSVGDocumentLoaderAdapter(){
publicvoiddocumentLoadingStarted(SVGDocumentLoaderEvente){
label.setText("DocumentLoading...");
}
publicvoiddocumentLoadingCompleted(SVGDocumentLoaderEvente){
label.setText("DocumentLoaded.");
}
});
svgCanvas.addGVTTreeBuilderListener(newGVTTreeBuilderAdapter(){
publicvoidgvtBuildStarted(GVTTreeBuilderEvente){
label.setText("BuildStarted...");
}
publicvoidgvtBuildCompleted(GVTTreeBuilderEvente){
label.setText("BuildDone.");
frame.pack();
}
});
svgCanvas.addGVTTreeRendererListener(newGVTTreeRendererAdapter(){
publicvoidgvtRenderingPrepare(GVTTreeRendererEvente){
label.setText("RenderingStarted...");
}
publicvoidgvtRenderingCompleted(GVTTreeRendererEvente){
label.setText("");
}
});
returnpanel;
}
}