2011-08-30 57 views
3

我有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的白色内容。你能帮我把帆布图的空白部分真透明吗?

+0

'transparnet.png'更可靠?你为什么在那里使用PNG文件? SVG还是PNG? –

+0

这是为了使滚动窗格透明。这是一种解决方法。我想让透明的是帆布图。我编辑过,所以它可能更清晰 – dieend

+0

“是XML定义中的错误吗?”对我来说,这听起来像是Java中的一个错误。顺便说一句:[不包括DOCTYPE声明](https://jwatt.org/svg/authoring/#doctype-declaration) – feeela

回答

1

我发现,设置与Alpha值背景的作品比设定isOpaque(false)

setBackground(new Color(0,0,0,0)); 
+0

是可以显示只是边界?因为我使用了这个,边界也消失了 –