2012-04-22 6 views
6

私はチャートの背景に透明な外観(完全には透明ではないが少し)を与えたい。ここに私のコードです。私は、透明度を追加するコード行をいくつか追加しましたが、ChartPanelが透明にならないと思います。これらのコード行を記述すると、チャートのバックグラウンドが灰色で表示されます。JFreechart ChartPanelがTransparenentを取得しない

JFreeChart chart = ChartFactory.createPieChart3D(
    "Full traffic view", pieDataset, true, true, true); 

PiePlot3D p = (PiePlot3D) chart.getPlot(); 

PieRenderer renderer = new PieRenderer(sampleColors); 
renderer.setColor(p, pieDataset); 
p.setDepthFactor(0.07); 
p.setCircular(true); 
p.setLabelOutlinePaint(null); 
p.setLabelBackgroundPaint(null); 
p.setLabelShadowPaint(null); 

p.setBackgroundPaint(new Color(127, 127, 127, 64)); // tranparency code 
p.setBackgroundImageAlpha(0.0f); 

p.setSimpleLabels(true); 
p.setLabelGenerator(null); 
p.setBackgroundPaint(
new GradientPaint(0, 0, Color.white, 0, 100, Color.white)); 
p.setDarkerSides(true); 
ChartPanel frame1 = new ChartPanel(chart); 
ChartPanel.setVisible(true); 
ChartPanel.add(frame1); 

ChartPanel.setSize(640, 400); 
+0

グレーとその理由を推測することができます。 – trashgod

答えて

2

これはプラットフォームとバージョンにかなり依存する可能性があるので、あなたは、所望の効果を得るためにPlotsetBackgroundImageAlpha()に見えるかもしれません。

1

私は私がは0.0fすなわち

setBacgroundImageAlpha(は0.0f)に背景画像を設定した後、しかし、それは解決してしまった同様の問題に直面しました。これは、背景画像を描画するときに使用するアルファ透明度を設定します。

アルファ透明度(0.0f〜1.0fの範囲、0.0fは完全に透明、1.0fは完全に不透明)。

これは、PNG(Portable Network Graphics)形式がアルファチャンネルの透過性をサポートしているためです。私はあなたのコードと私の間に見出さ

唯一の違いは、

p.setBackgroundPaint(新しいカラー(127、127、127、64))でした。 //あなたのトランスペアレンシーコード

p.setBackgroundPaint(new Color(255,255,255,0)); //私は、チャートやグラフのために透明色両方を使用する必要がありますことを発見し

4

私の透明度コード:あなたの[sscce](http://sscce.org/)、我々がなければ

val trans = new Color(0xFF, 0xFF, 0xFF, 0) 
chart.setBackgroundPaint(trans) 
plot .setBackgroundPaint(trans) 
関連する問題