2011-08-05 12 views
2

私はJFreeChartを使用しており、灰色と黒色のダッシュを交互に入れた線を使用して一連のデータをプロットします。すなわち、grayblackgrayblackgrayblack2つの色を交互にする破線を作成するにはどうすればよいですか?

JFreeChartは、系列を描画する方法としてAWT StrokeまたはShapeオブジェクトのみを受け入れます。

私が理解するように、BasicStrokeは1つの色しか持たず、不透明と透明の間で交互に使用できます。ストロークを実装する別のクラスがあり、複数の色を使用できますか?あるいは、この問題を解決する別の方法がありますか?

答えて

1

私ははJFreeChartと同様の問題を持っていました。私は単純に適切なプロットを拡張し、描画メソッドのいくつかをオーバーライドしました。理想的な解決策ではありませんが、JFreeChartでできることには限界があります。

+0

私はそれを最後の手段だと思っていますが、完全に実行可能です。 – trashgod

2

私はAWTやJFreeChartの特別な経験のないAndroidプログラマーだから、ここでは炎の中で撃墜される危険がありますが、私は行きます。

2つの破線を重ね合わせて、破線を作成することはできますか?その1つのダッシュフェーズを相殺して、ダッシュが一緒に絡み合うようにしますか? AWTのBasicStrokeクラスを調べたところ、ダッシュ配列を指定するだけでなく、ダッシュのフェーズも指定できます。

はここでの位相を設定する(ページの下の方)の破線のストロークをどのように影響するかを示して潜在的に有用なURLです:http://docstore.mik.ua/orelly/java-ent/jfc/ch04_05.htm

+0

これは素晴らしい考えですが、残念ながらこの文脈では機能しません。チャートレンダラーは、単一のオブジェクトのみをパラメーターとして受け入れますので、チャートのレンダリング方法をオーバーライドしないと、実装できません。 – GenericJon

1

BasicStrokeと一緒にサイクリックLinearGradientPaintを試してみることもできます。

補足:シャープなエッジをレンダリングするには、java.awt.TexturePaintを検討してください。直交ボンドをレンダリングするには、java.awt.geom.Path2Dを考慮する。

+0

私が理解しているように、LinearGradientPaintは常に、最初の色から2番目の色へ徐々に移行します。グラデーションサイズをゼロにする方法はありますか(色の変更は即時です)、ダッシュが一定の長さになるようにサイクルを遅らせますか? – GenericJon

+0

私は上記で詳しく述べました。 – trashgod

関連する問題