- Home ›
- JFreeChartを使ったグラフ作成 ›
- JavaアプリケーションでのJFreeChartの利用 ›
- HERE
ChartPanelクラス
ChartPanelクラスはJPanelクラスのサブクラスです。JFreeChartクラスのオブジェクトを元にChartPanelクラスのオブジェクトを作成し、JFrameクラスのオブジェクトなどに追加することでJavaアプリケーションでグラフを表示することが出来ます。
ChartPanelクラスのクラス図は次のように定義されています。
java.lang.Object
L java.awt.Component
L java.awt.Container
L javax.swing.JComponent
L javax.swing.JPanel
L org.jfree.chart.ChartPanel
public class ChartPanel extends javax.swing.JPanel implements ChartChangeListener, ChartProgressListener, java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.print.Printable, java.io.Serializable
ChartPanelクラスはJPanelクラスのサブクラスとなっています。ActionListenerやMouseListenerの他にChartChangeListenerやChartProgressListenerをインプリメントしておりイベント処理を行うこともできます。
用意されているコンストラクタは次の4つです。
| コンストラクタの概要 |
|---|
| ChartPanel(JFreeChart chart) Constructs a panel that displays the specified chart. |
| ChartPanel(JFreeChart chart, boolean useBuffer) Constructs a panel containing a chart. |
| ChartPanel(JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) Constructs a JFreeChart panel. |
| ChartPanel(JFreeChart chart, int width, int height, int minimumDrawWidth, int minimumDrawHeight, int maximumDrawWidth, int maximumDrawHeight, boolean useBuffer, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) Constructs a JFreeChart panel. |
基本となる1番目のコンストラクタを確認してみます。
ChartPanel public ChartPanel(JFreeChart chart)
Constructs a panel that displays the specified chart. Parameters: chart - the chart.
引数にはJFreeChartクラスのオブジェクトを指定します。
ChartFrameではフレームの背景画像のようにグラフが貼り付けられているわけではなく、JFreeChartクラスのオブジェクトを元に作成したChartPanelクラスのオブジェクトが作成されてフレーム内に追加されています。(ChartPanelクラスについては次のページで解説します)。
実際の使い方は次のようになります。
DefaultPieDataset data = new DefaultPieDataset();
JFreeChart chart =
ChartFactory.createPieChart("Title", data, true, false, false);
ChartPanel cpanel = new ChartPanel(chart);
ChartPanelクラスはJPanelクラスのサブクラスですのでJPanelクラスの多くのメソッドを利用できます。(JPanelクラスについては「JPanelクラス」を参照して下さい)。
ChartPanelクラスのオブジェクトを作成したら、JFrameクラスのオブジェクトに追加して利用します。簡単な使い方は次のサンプルを見てください。
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.DefaultPieDataset;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import org.jfree.chart.ChartPanel;
public class Test2_1 extends JFrame{
public static void main(String[] args) {
Test2_1 frame = new Test2_1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 400, 300);
frame.setTitle("グラフサンプル");
frame.setVisible(true);
}
Test2_1(){
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("支持する", 40);
data.setValue("支持しない", 55);
data.setValue("未回答", 5);
JFreeChart chart =
ChartFactory.createPieChart("支持率", data, true, false, false);
ChartPanel cpanel = new ChartPanel(chart);
getContentPane().add(cpanel, BorderLayout.CENTER);
}
}
上記をコンパイルした後で実行すると次のようにJavaアプリケーションが起動します。
( Written by Tatsuo Ikura )
JavaDrive