gpt4 book ai didi

java - 使用 batik 在 JPanel 上加载 SVG 文件

转载 作者:行者123 更新时间:2023-11-30 08:42:07 27 4
gpt4 key购买 nike

我想用这个简单的代码在 JPanel 上加载 SVG 文件,但 JPanel 是灰色的。我有什么问题吗?

import javax.swing.*;
import org.apache.batik.swing.JSVGCanvas;


public class SVGApplication extends JPanel
{
public SVGApplication(){


JSVGCanvas svg = new JSVGCanvas();
// location of the SVG File
svg.setURI("file:/C:/Users/Linda/Desktop/test.svg");
JPanel panel = new JPanel();
panel.add(svg);
}

public static void main(String[] args)
{
JFrame frame = new JFrame("SVGView");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SVGApplication());
frame.pack();
frame.setSize(500, 400);
frame.setVisible(true);
}
}

最佳答案

您要向 JPanel 添加内容,此处名为“面板”,但不会添加任何内容,因此永远不会显示:

 public SVGApplication(){
JSVGCanvas svg = new JSVGCanvas();
// location of the SVG File
svg.setURI("file:/C:/Users/Linda/Desktop/test.svg");
JPanel panel = new JPanel(); // *** what is this for? ***
panel.add(svg); // **** you never add this panel to anything ****
}

摆脱面板:

 public SVGApplication(){
JSVGCanvas svg = new JSVGCanvas();
// location of the SVG File
svg.setURI("file:/C:/Users/Linda/Desktop/test.svg");
// JPanel panel = new JPanel(); // *** what is this for? ***
// panel.add(svg);
add(svg);
}

更好的是,为什么不简单地使用 JSVGCanvas 组件呢?为什么要将它包装在您的 SVGApplication 面板中?

关于java - 使用 batik 在 JPanel 上加载 SVG 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com