- 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 )