3

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

这是 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>

这是滚动窗格部分(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);
        }
    };

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

4

1 回答 1

1

我发现使用 alpha 值设置背景比设置更可靠isOpaque(false)

setBackground(new Color(0,0,0,0));
于 2012-06-02T18:54:06.220 回答