トップページ > フーリエ変換入門(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); } }