软件下载地址:

创建一个JSVGCanvas代码案例: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) {

// Create a new JFrame.

JFrame f = new JFrame("Batik");

SVGApplication app = new SVGApplication(f);

// Add components to the frame.

f.getContentPane().add(app.createComponents());

// Display the frame.

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

f.setSize(400, 400);

f.setVisible(true);

}

// The frame.

protected JFrame frame;

// The "Load" button, which displays up a file chooser upon clicking.

protected JButton button = new JButton("Load...");

// The status label.

protected JLabel label = new JLabel();

// The SVG canvas.

protected JSVGCanvas svgCanvas = new JSVGCanvas();

public SVGApplication(JFrame f) {

frame = f;

}

public JComponent createComponents() {

// Create a panel and add the button, status label and the SVG canvas.

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;

}

}

java batik_Java Batik框架画SVG图 JSVGCanvas相关推荐

  1. html可以用坐标画svg图吗,HTML5如何使用SVG的方法示例

    代码优化永远是程序员亘古不变的需求,而合理的利用SVG图片来代替部分PNG/JPG等格式的图片则是前端优化重要的一环,既然是优化,那我们先来看看SVG图片都有哪些优势: SVG 可被非常多的工具读取和 ...

  2. java测试类要画UML图吗,如何从Java代码生成UML图(尤其是序列图)?

    如何从Java代码生成UML图(尤其是序列图)? 如何从现有Java代码生成UML图(尤其是序列图)? 14个解决方案 249 votes ObjectAid UML Explorer 是我用过的. ...

  3. java怎么给框架添加背景图,java里怎么给Container添加背景图片

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public Frame1() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } ...

  4. Java的集合框架思维导图

  5. java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题

    文章目录 先看成品 前言 一.项目目录结构 一.海报制作PosterUtil.java工具类 1. 描述 2. 代码 二.测试生成海报 1. 描述 2. 直接上代码 四.其他测试 1. Test1_C ...

  6. Java之集合框架图及 Collection和Collections的区别及用法总结

    Java中Collection和Collections的区别: 1.Java集合框架图: 2.Collection接口: java.util.Collection是一个集合接口,其中定义了对集合对象有 ...

  7. java集合框架思维导图

    一.JAVA集合框架思维导图 二.java集合框架图 三.Java集合框架体系图

  8. java 折线动图_Java画折线图

    JFreeChart 是开放源代码站点SourceForge.net 上的一个 JAVA 项目,它主要用来各种各样的图表,这些图表包括:饼图.柱状图 ( 普通柱状图以及堆栈柱状图 ).线图.区域图.分 ...

  9. java plt_matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解

    学习python的道路是漫长的,今天又遇到一个问题,所以想写下来自己的理解方便以后查看. 在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图.这是因为python可视 ...

  10. java怎么画八卦图_自己画八卦图怎么画?电脑绘制八卦图|八卦图的简单画法

    今天又是美妙的周五了,其实小编周一早上起床睁开眼的时候,就很期待的想着,如果今天是周五就好了.结果没想到,时间一下子就过去了,今天真的是周五了.啊哈哈,很绕是吧,还是不说废话了,来看看今天的教程方案吧 ...

最新文章

  1. 练习5-3 数字金字塔 (15 分)
  2. 隐藏画质代码_如何让千元机高画质满帧吃鸡?最全教程奉上!
  3. 我如何进入Docker容器的shell?
  4. Android+NDK+OpenGLES开发环境配置
  5. 5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕
  6. Mybatis一对一结果映射
  7. Unity3D开发技巧:如何避开unity编辑器的那些坑
  8. AAA及RADIUS/HWTACACS协议简介
  9. 如何屏蔽LOGD\LOGI等打印输出
  10. 测井曲线fft matlab,Matlab编程实现FFT实践及频谱分析
  11. 泰坦尼克号乘客存活预测详细笔记
  12. libreelec投屏_在LibreELEC上安装Entware
  13. 快播将关闭QVOD服务器 清理低俗和盗版内容
  14. Excel如何将商品名称中的商品型号提取出来
  15. Ubuntu上实现蓝牙串口通讯(SPP)
  16. three.js开发全景视频播放器的现实方法
  17. 计算机组成原理ce和we是什么,EL-JY-Ⅱ 计算机组成原理第二套 实验三
  18. 理解extends与implements
  19. java程序员的大数据之路(6):定制的Writable类型
  20. php+发送邮件标题乱码_php邮件标题乱码的解决方法

热门文章

  1. 解决win10桌面图标和任务栏图标一直闪烁
  2. 磁力云播Android代码,磁力云播
  3. 海思Hi3559AV100ES Camera芯片处理器参数
  4. 双击java安装包没有反应_eclipse安装包双击没反应怎么回事?
  5. 测试人员必会用例设计方法 —— 正交表
  6. 冰点密码破解 — 强悍的调试器 SOFTICE 1
  7. 国内完全免费的电子书籍下载
  8. 工业级串口Modbus数据绘制曲线及上位机监控软件DotTrend
  9. v-ray 5.0 渲染器参数说明
  10. 网上鞋店html,“鞋店”是“shoes store”还是“shoe store”?