1

ここに事実があります:私は棒グラフに関連するテーブルで構成される小さなアプリを作成しました(もちろん、バートのものです...)。 .

とにかく、すべて正常に動作します...しかし、ツールチップを表示するためにチャートをインタラクティブにしたい場合(たとえば)、IDeviceRendererに次のコマンドを自然に通知します idr.setProperty( IDeviceRenderer.UPDATE_NOTIFIER, this ); しかし、そうすると、(かなり後で) 私のコードが gr.render(idr, gr.build(idr.getDisplayServer(), this.chart, bo, vroum,null)); になったときにエラーが発生します。(これまでに失敗したことはありません)...

私は失われたと感じます ...

ps: 表示されるエラーは、チャートにバーが表示されず、次のエラー メッセージが表示されることです。 java:1373) で clickable.chart.ClickableProto.paintControl(ClickableProto.java:520) で org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:217) で org.eclipse.swt.widgets.EventTable.sendEvent (EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) で org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027) で org.eclipse. org.eclipse.swt.widgets.Control.windowProc(Control.java: 3842) org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337) の org.eclipse.swt.widgets.Display.windowProc(Display.java:4541) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2371) at org. clickable.chart.ClickableProto.main(ClickableProto.java:151) での eclipse.swt.widgets.Display.readAndDispatch(Display.java:3420) 原因: org.eclipse.birt.chart.render での java.lang.NullPointerException。 org.eclipse.birt.chart.render.InteractiveRenderer.getSource(InteractiveRenderer.java:161) の InteractiveRenderer.isColoredByCategories(InteractiveRenderer.java:197) org.eclipse.birt.chart.render.InteractiveRenderer.modifyEvent(InteractiveRenderer.java: 116) org.eclipse.birt.chart.device.swt.SwtRendererImpl.fillPolygon(SwtRendererImpl.java:502) で org.eclipse.birt.chart.event.PolygonRenderEvent.fill(PolygonRenderEvent.java:156) で org.eclipse .birt.chart.render.DeferredCache.org.eclipse.birt.chart.render.DeferredCache.flushOptions(DeferredCache.java:271) の flushPlanes(DeferredCache.java:499) org.eclipse.birt.chart.render.DeferredCacheManager.flushOptions(DeferredCacheManager.java:165) のorg.eclipse.birt.chart.render.AxesRenderer.flushClipping(AxesRenderer.java:3416) で org.eclipse.birt.chart.render.AxesRenderer.restoreClipping(AxesRenderer.java:3401) で org.eclipse.birt.chart .render.Bar.renderSeries(Bar.java:1533) 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) ... 14 詳細org.eclipse.birt.chart.render.AxesRenderer.restoreClipping(AxesRenderer.java: 3401) org.eclipse.birt.chart.render.Bar.renderSeries(Bar.java:1533) で org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2181) で org.eclipse.birt .chart.render.AxesRenderer.render(AxesRenderer.java:314) at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1368) ... 14 もっと見るorg.eclipse.birt.chart.render.AxesRenderer.restoreClipping(AxesRenderer.java: 3401) org.eclipse.birt.chart.render.Bar.renderSeries(Bar.java:1533) で org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2181) で org.eclipse.birt .chart.render.AxesRenderer.render(AxesRenderer.java:314) at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1368) ... 14 もっと見るorg.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:314) の AxesRenderer.renderPlot(AxesRenderer.java:2181) org.eclipse.birt.chart.factory.Generator.render(Generator.java: 1368) ... 14 件以上org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:314) の AxesRenderer.renderPlot(AxesRenderer.java:2181) org.eclipse.birt.chart.factory.Generator.render(Generator.java: 1368) ... 14 件以上

私はどんなアイデアにもオープンです!

4

1 に答える 1

1

最後は自力でなんとか…

ここでは、BIRT でチャートを作成し、それをインタラクティブにしたい場合に犯してはならないよくある間違いをいくつか紹介します...

1 オーバーライドする必要があるものはほとんど実装しない

        私は個人的にオーバーライドするのを忘れていました

getDesignTimeModel()

getRunTimeModel()

ICallBackNotifier の実装に付属しています ...

2チャートをネストしないでください(または、ほとんどのメソッドもネストする準備をしてください)

        私は自分のシェルに直接チャートを持っていませんでしたが、複合ウィジェット、キャンバスなどの束にネストしていました...したがって、自分のシェルを隠しているキャンバスは、自分のマウスコントローラーに望むように反応できる唯一のものでした。(面白い事実: グラフと重なっていないシェルの小さな部分を (理由もなく) ドラッグしてバーにドロップしようとしたときに、これがすべてわかりました...そこでツールチップがポップアップしました... ^^物事がどのように機能するかを理解するための面白い方法:p)

3 私にならないで…

        かろうじて許容できる結果を得るには、多くの労力と苦痛が必要です;p

この助けを願っています。同じ問題に直面した場合は、遠慮なく私にメールしてください。できる限りお手伝いさせていただきます^^

于 2009-06-11T10:01:26.653 に答える