トップページ > フーリエ変換入門(FFT入門) > グラフの準備(4)
GraphCanvasクラスそのものはグラフ描画をするだけなので、フレームやmain()メソッドなどは 別に用意する必要があります。今回は面倒なことは後回しにして、今後使うアプリケーションの ベースとなる“MainFrame”クラスを作り、GraphCanvasにsin波形を表示させてみます。 フレームやコンテントペインの生成など、ほとんど前に使ったCanvas_testクラスと同じです。 違うところは、Canvasクラスではなく自前のGraphCanvasクラスを使っている点と、 GraphCanvasのdata配列へsinの値を代入しているところです。ここについては 後々解説します。
なお、このMainFrameクラスと前回のGraphCanvasクラスは同じディレクトリに保存する必要があります。
//******************************************************************************
//MainFrame.java
//グラフ描画のためのアプリケーションの外枠です。
//******************************************************************************
//==============================================================================
//クラスライブラリのインポート
//==============================================================================
import java.awt.*;
import javax.swing.*;
//==============================================================================
//MainFrame
//==============================================================================
public class MainFrame
{
//=============================================================================
//main()メソッド
//=============================================================================
public static void main(String[] args)
{
//============================================================================
//フレーム作成
JFrame frame = new JFrame();
frame.setTitle("MainFrame");
frame.setBounds(100,100,480,380);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setResizable(false);
//============================================================================
//コンテントペイン作成
JPanel cp = new JPanel();
cp.setLayout(null);
frame.add(cp);
cp.setBounds(38,20,400,300);
//============================================================================
//GraphCanvas作成
GraphCanvas canvas = new GraphCanvas(400,300);
cp.add(canvas);
//============================================================================
//GraphCanvasのdataにsin波形を入れます。
for(int i=0;i\gtcanvas.getWidth();i++)
{
canvas.data[i] = 100*Math.sin((i-canvas.getWidth()/2+1)*Math.PI/((canvas.getWidth())/2));
}
//============================================================================
//フレーム可視化
frame.setVisible(true);
}
}