java canvas jcompant_JAVA画SVG图(Batik框架)SVGComponentDemo

该示例展示了如何使用Apache Batik库在Java应用程序中加载和显示SVG图像。通过创建一个JSVGComponent并监听SVG文档加载、GVT树构建和渲染事件来实现SVG组件的功能。
摘要由CSDN通过智能技术生成

package example;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.File;

import java.io.IOException;

import javax.swing.JButton;

import javax.swing.JComponent;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;

import org.apache.batik.swing.gvt.GVTTreeRendererEvent;

import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;

import org.apache.batik.swing.svg.GVTTreeBuilderEvent;

import org.apache.batik.swing.svg.JSVGComponent;

import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;

import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;

public class SVGComponentDemo {

public static void main(String[] args) {

// Create a new JFrame.

JFrame f = new JFrame("Batik");

SVGComponentDemo app = new SVGComponentDemo(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 component

protected JSVGComponent svgComponent = new JSVGComponent(null, false, false);

public SVGComponentDemo(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", svgComponent);

// Set the button action.

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

JFileChooser fc = new JFileChooser(".//images");

int choice = fc.showOpenDialog(panel);

if (choice == JFileChooser.APPROVE_OPTION) {

File f = fc.getSelectedFile();

try {

svgComponent.loadSVGDocument(f.toURL().toString());

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

});

// Set the JSVGComponent listeners.

svgComponent.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {

public void documentLoadingStarted(SVGDocumentLoaderEvent e) {

label.setText("Document Loading...");

}

public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {

label.setText("Document Loaded.");

}

});

svgComponent.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {

public void gvtBuildStarted(GVTTreeBuilderEvent e) {

label.setText("Build Started...");

}

public void gvtBuildCompleted(GVTTreeBuilderEvent e) {

label.setText("Build Done.");

frame.pack();

}

});

svgComponent.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {

public void gvtRenderingPrepare(GVTTreeRendererEvent e) {

label.setText("Rendering Started...");

}

public void gvtRenderingCompleted(GVTTreeRendererEvent e) {

label.setText("");

}

});

return panel;

}

}

好的,我可以为您解答关于Java Canvas 和 Android.graphics.Canvas的基本使用。 Java Canvas是一个在awt,swing等GUI框架中用于绘制形的类,它提供了一个类似布的面板,我们可以在上面绘制各种形和文字。 下面是Java Canvas的基本使用方法: 1. 创建一个Canvas对象: ``` Canvas canvas = new Canvas(); ``` 2. 获得一个Graphics对象: ``` Graphics g = canvas.getGraphics(); ``` 3. 使用Graphics对象绘制形: ``` g.drawLine(0, 0, 100, 100); g.drawRect(50, 50, 100, 100); g.drawOval(100, 100, 50, 50); g.drawString("Hello, World!", 200, 200); ``` 这些方法可以绘制线条,矩形,椭圆和文本。 在Android中,Canvas是一个类用于绘制形和文字,我们可以使用它来自定义视或绘制自己的UI元素。 下面是Android.graphics.Canvas的基本使用方法: 1. 创建一个Canvas对象: ``` Canvas canvas = new Canvas(bitmap); ``` 这里的bitmap是我们要绘制的位对象。 2. 使用Canvas对象绘制形: ``` Paint paint = new Paint(); paint.setColor(Color.RED); paint.setStrokeWidth(5); canvas.drawLine(0, 0, 100, 100, paint); canvas.drawRect(50, 50, 100, 100, paint); canvas.drawOval(100, 100, 150, 150, paint); canvas.drawText("Hello, World!", 200, 200, paint); ``` 这些方法可以绘制线条,矩形,椭圆和文本。我们可以使用Paint对象来设置绘制的颜色,线条宽度等属性。 以上就是Java Canvas和Android.graphics.Canvas的基本使用方法,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值