JFreeChart DialPlot的GradientBackground

时间:2017-03-14 09:23:36

标签: java swt jfreechart

我在SWT中使用JFreeChart,并希望按照here所述为DialPlot设置渐变背景。 但我总是得到白色背景。

GradientPaint gradient = new GradientPaint(new Point(), Color.white, new Point(), Color.darkGray);
DialBackground background = new DialBackground(gradient);
background.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));

StandardDialFrame frame = new StandardDialFrame();
frame.setBackgroundPaint(Color.lightGray);
frame.setForegroundPaint(Color.darkGray);

// some layers

DialPlot plot = new DialPlot(getDataset());
plot.setDialFrame(frame);
plot.setBackground(background);

The resulting plot.

对我做错了什么建议?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你的片段出错了。从此Swing example开始,buildDialPlot()中的以下更改似乎有效:

private ChartPanel buildDialPlot(int minimumValue, int maximumValue, int majorTickGap) {
    …
    GradientPaint gradient =
        new GradientPaint(new Point(), Color.white, new Point(), Color.gray);
    DialBackground background = new DialBackground(gradient);
    background.setGradientPaintTransformer(
        new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
    plot.setBackground(background);

    return new ChartPanel(new JFreeChart(plot)) {…};
}

image

这可能是SWT桥或代码中其他位置的问题。