java - 如何在 Java 中使透明 SVG 透明?

标签 java svg jscrollpane batik

我有一个 SVG 文件,它实际上是空的,还没有任何元素。我将通过添加元素在 Java 代码中对其进行操作。 SVG 文件将插入到滚动 Pane 中。问题是甚至 SVG 文件实际上是空的,即使我已经将它设置为透明,Scrollpane 也不透明。

这是 SVG 文件(我从客户那里得到的):

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
<svg version="1.1"
 baseProfile="full"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
 xmlns:ev="http://www.w3.org/2001/xml-events">
 id="chart"
 width="1366px" height="768px" viewBox="0 0 1366 768" >
<defs>
   <!-- some template here -->
</defs>
</svg>

这里是滚动 Pane 部分(canvasDiagram 是 SVGCanvas)。

// the instantiation part
canvasDiagram.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
canvasDiagram.setURI(getClass().getResource("path to svg file").toString());
scrollPane = new JScrollPane(canvasDiagram){
        {
            setOpaque(false);
            getViewport().setOpaque(false);
        }
    };

滚动 Pane 不是透明的而是白色的。我尝试使用透明的 jPanel 及其工作插入滚动 Pane 内容,所以我相信白色内容是因为 canvasDiagram。你能帮我让 canvasDiagram 的空白部分真正透明吗?

最佳答案

我发现用 alpha 值设置背景比设置 isOpaque(false)

更可靠
setBackground(new Color(0,0,0,0));

关于java - 如何在 Java 中使透明 SVG 透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238764/

相关文章:

java - 如何在 Spring Boot 应用程序中将千分尺与 jmx 一起使用?

Java:如何将动态数量的参数传递给方法

java - quercus翻译的质量?

css - 使用 SVG 和 CSS 创建直线和圆的交点

java - 是否可以将 JComponent 及其所有子组件绘制到另一个组件?

java - 消除多个构造函数中的冗余

html - 使用 SVG 玩 Gooey 效果

javascript - 停止穿过 map 的 d3 路径

java - 使用 AddElement 更改 DefaultListModel 时,JList 不显示

java - JList 列表项被压缩