ChartFrameクラス

広告

ChartFrameクラスはJFrameクラスのサブクラスです。ここではフレーム内にグラフを表示させる方法を確認します。

ChartFrameクラスのクラス図は次のように定義されています。

java.lang.Object
 L java.awt.Component
     L java.awt.Container
         L java.awt.Window
             L java.awt.Frame
                 L javax.swing.JFrame
                     L org.jfree.chart.ChartFrame

public class ChartFrame extends javax.swing.JFrame

ChartFrameクラスはJFrameクラスのサブクラスとなっています。

用意されているコンストラクタは次の2つです。

コンストラクタの概要
ChartFrame(java.lang.String title, JFreeChart chart)
Constructs a frame for a chart.
ChartFrame(java.lang.String title, JFreeChart chart, boolean scrollPane)
Constructs a frame for a chart.

1番目のコンストラクタを確認してみます。

Constructs a frame for a chart.

Parameters:
  title - the frame title.
  chart - the chart.

引数にはフレームのタイトルと、JFreeChartクラスのオブジェクトを指定します。

ChartFrameではフレームの背景画像のようにグラフが貼り付けられているわけではなく、JFreeChartクラスのオブジェクトを元に作成したChartPanelクラスのオブジェクトが作成されてフレーム内に追加されています。(ChartPanelクラスについては次のページで解説します)。

実際の使い方は次のようになります。

DefaultPieDataset data = new DefaultPieDataset();
JFreeChart chart = 
  ChartFactory.createPieChart("Title", data, true, false, false);

ChartFrame frame = new ChartFrame("Title", chart);
frame.setBounds(10, 10, 400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

ChartFrameクラスはJFrameクラスのサブクラスですので、JFrameクラスで用意されている「setBounds」メソッドで位置とサイズを設定し、「setDefaultCloseOperation」メソッドで終了処理を追加し、「setVisible」メソッドでフレームを表示しています。(JFrameクラスについては「JFrameクラス」を参照して下さい)。

グラフを表示するフレームを簡単に作成するには便利ですが、イベント処理などより細かい制御を行う場合にはChartPanelクラスを使用して下さい。

サンプルプログラム

では簡単なサンプルを作成して試してみます。

Test1_1.java

import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.DefaultPieDataset;

import org.jfree.chart.ChartFrame;
import javax.swing.JFrame;

public class Test1_1{
  public static void main(String[] args) {
    DefaultPieDataset data = new DefaultPieDataset();
    data.setValue("1個", 20);
    data.setValue("2個", 45);
    data.setValue("3個", 10);
    data.setValue("4個", 8);
    data.setValue("その他", 17);

    JFreeChart chart = 
      ChartFactory.createPieChart("金メダル予想", data, true, false, false);

    ChartFrame frame = new ChartFrame("Title", chart);
    frame.setBounds(10, 10, 400, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}

上記をコンパイルした後で実行すると次のようにJavaアプリケーションが起動します。

ChartFrameクラス

フレームのサイズを変更するとグラフもフレームに合わせて変更されます。

ChartFrameクラス

( Written by Tatsuo Ikura )