グラフの切り替え処理-メニューのイベント処理
グラフのスタイル定義が作成できたら、後はchartオブジェクトのスタイルを切り替えるだけです。この操作は、既に作成しているchartオブジェクトの設定と同じ要領で、
- setStyleメソッドでスタイル定義を設定
- setModelメソッドでデータモデルを設定
- setSizeメソッドでチャートのサイズを設定
という3つの操作を、それぞれのメニューのイベント処理の中で行うだけです。また、設定したグラフの各要素をグラフの表示に反映するために、最後にrepaintメソッドを実行します。
なお、chartオブジェクトはイベントハンドラのメソッド内でも参照できるように、クラス「drawpanel」のメンバ変数になるよう宣言の位置を変えておきます。
class drawpanel extends JPanel implements ActionListener{ ... ... //この宣言をここに移動 MxComponent chart; ... ... //アプリケーション起動時の3D縦棒グラフの表示処理 private void addChart(javax.swing.JPanel panel) { chart = new MxComponent(); panel.add(chart); chart.setStyle(getWidgetStyle()); chart.setModel(getModel()); chart.setSize(400,300); } //メニューとボタンのイベント処理 public void actionPerformed(ActionEvent e) { ..... ..... // 3D縦棒グラフの表示 if (e.getSource() == mi_line) { chart.setStyle(getLineStyle()); chart.setModel(getModel()); chart.setSize(400,300); chart.repaint(); } // 円グラフの表示 if (e.getSource() == mi_pie) { chart.setStyle(getpieStyle()); chart.setModel(getModel()); chart.setSize(400,300); chart.repaint(); } // 3D縦棒グラフの表示 if (e.getSource() == mi_3dbar) { chart.setStyle(getWidgetStyle()); chart.setModel(getModel()); chart.setSize(400,300); } }
以上ででき上がりです。フレームにメニューを組み込んだので、フレームの高さが若干少なくなります。その分フレームのサイズを大きくしておいてください。
まとめ
Javaで凝ったグラフを作るとなると、結構面倒なコーディングが必要になります。
WebCharts3D 5.2Jコンポーネントがあれば、ウィザードでベースとなるグラフを作成し、必要によりプロパティでさらにオリジナリティを加えて使う、という使い方がとても簡単にできます。
WebCharts3D 5.2Jを開発に導入するということは、開発工数の大幅な削減になるとともに、見栄えの良いアプリケーションに仕上げることができるという、コストメリットの高い選択肢になるのではないでしょうか。