7

チャートの背景を透明にしたい (完全に透明ではなく、少しだけ)。これが私のコードです。透明性を追加するためにいくつかのコード行を追加しましたが、透明になっていないと思いChartPanelます。これらのコード行を書き込んだ後、グラフの背景が灰色に見えます。

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);
4

3 に答える 3

5

チャートとプロットの両方に透明色を使用する必要があることがわかりました。

val trans = new Color(0xFF, 0xFF, 0xFF, 0)
chart.setBackgroundPaint(trans)
plot .setBackgroundPaint(trans)
于 2013-10-23T11:52:52.863 に答える
2

これはプラットフォームとバージョンにかなり依存する可能性がある ため、目的の効果を得るには を参照しsetBackgroundImageAlpha()てください。Plot

于 2012-04-23T01:28:17.530 に答える
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(新しい色(255,255,255,0)); // 私の透明性コード

于 2012-05-22T06:42:18.253 に答える