2017-03-14 9 views
1

SWTでJFreeChartを使用していて、hereのようにDialPlotにグラデーションの背景を設定したいとします。 しかし、私はいつも白い背景を持っています。JFreeChart DialPlotのGradientBackground

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

フラグメントがどこに間違っているかはっきりしません。このスイング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ブリッジや他の場所であなたのコードで問題になることがあります。