我有SVG文件,实际上是空的,没有元素,但呢。我将通过添加元素来在Java代码中操作它。 SVG文件将被插入到滚动窗格中。问题是甚至SVG文件实际上是空的,即使我已经将它设置为透明,Scrollpane也不透明。如何让透明的SVG在Java中透明化?
下面是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);
}
};
该scrollpane不透明,但白色。我试图用透明的jPanel插入滚动窗格内容及其工作,所以我相信由于canvasDiagram的白色内容。你能帮我把帆布图的空白部分真透明吗?
'transparnet.png'更可靠?你为什么在那里使用PNG文件? SVG还是PNG? –
这是为了使滚动窗格透明。这是一种解决方法。我想让透明的是帆布图。我编辑过,所以它可能更清晰 – dieend
“是XML定义中的错误吗?”对我来说,这听起来像是Java中的一个错误。顺便说一句:[不包括DOCTYPE声明](https://jwatt.org/svg/authoring/#doctype-declaration) – feeela