BIRTチャートAPIを使用して面チャートのシリーズ塗りつぶしをカスタマイズする方法は?

StackOverflow https://stackoverflow.com/questions/826071

  •  05-07-2019
  •  | 
  •  

質問

BIRTチャートAPIを使用して構築しているエリアチャートのシリーズにグラデーション塗りつぶしを作成しようとしていますが、書籍「Integrating and Extending BIRT」 Interwebsは、それを機能させる方法について不思議なほど静かに見えます。私が何をしようとも、デフォルトのパレットから常にフラットな色が得られます。 SeriesDefinition.getSeriesPalette()。update(Gradient)を使用して、グラデーションの塗りつぶしで独自のパレットを作成し、SeriesDefinitionでそれを設定しようとしましたが、役に立ちませんでした。 Javadocが何もしないと主張するshift(0)であっても、Paletteでshift()を実行しない場合、チャートを生成しようとするとNullPointerExceptionが発生することにも気付きました。

Caused by: java.lang.NullPointerException
at org.eclipse.birt.chart.render.Area.renderDataPoints(Area.java:521)
at org.eclipse.birt.chart.render.Line.renderSeries(Line.java:570)
at org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2181)
at org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:314)
at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1368)
... 108 more

これは私が試した最新の(機能しない)コードです:

Gradient gradient = FillUtil.createDefaultGradient(BirtReportBuilder.COLOR_WHITE);
gradient.setStartColor(ColorDefinitionImpl.WHITE());
gradient.setEndColor(ColorDefinitionImpl.create(76, 116, 131));
gradient.setDirection(90);
SeriesDefinition sdY = SeriesDefinitionImpl.create();
sdY.getQuery().setDefinition("\"Quantity\"");
Palette pal = PaletteImpl.create(gradient);
pal.shift(0);
sdY.setSeriesPalette(pal);
sdY.getSeries().add(as1);
yAxisPrimary.getSeriesDefinitions().add(sdY);

では、BIRT Charting APIでグラデーションを領域塗りつぶしとして使用する魔法の呪文は何ですか?

役に立ちましたか?

解決

このコードは私のために機能します、Iい色のセリエを取得します...

sdY.getSeriesPalette().update(GradientImpl.create(ColorDefinitionImpl.create(255,255,255), ColorDefinitionImpl.create(200,0,0,150), 90, false));

お役に立てば幸いです; p

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top