時系列の株価をグラフ表示するアプリケーションを作ろうと思っています。

株価データを取得し、移動平均等を計算するクラスを作って、
SwingのGUIのボタンなどで株価データを扱うようにはできました。

あとは、グラフを表示するところなんですけど、
Canvasを拡張してpaint()をオーバーライドするのかなと思っていますが、
合ってますか?

拡大表示できるようにして、スクロール可能にしたいと思っています。
ScrollPaneに乗せるだけで実現可能でしょうか?

あと、表示するグラフの種類(ローソク足とか移動平均とか)をJCheckBoxで選択したいんですけど
選択したグラフの種類のデータは、
Canvasを拡張したクラスに変数を作ってGUIで操作される度にsetするのと
CanvasにGUIのクラスへの参照を持たせて、JCheckBoxのisSelected()で判断するのと
どちらが良いですか?

以上、よろしくお願いします。