JFrame を継承する

JFrame(Swing) を継承して矩形を描画します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. JFrame(Swing) を継承して矩形を描画する方法です。
    //★ JFrame を継承する    前田 稔
    import java.awt.*;
    import javax.swing.*;
    
    class App extends JFrame
    {
        // Main
        public static void main(String args[])
        {   new App();
        }
    
        // Constructor
        public App()
        {   super("Swing DrawRect");
            setSize(160, 120);
            setVisible(true);
        }
    
        // Paint Method
        public void paint(Graphics g)
        {   super.paint(g);
            g.setColor(Color.red);
            g.drawRect(20,40,120,60);
        }
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java2 を動かす を参照して下さい。

プログラムの説明

  1. Swing を使うので javax.swing.* をインポートして下さい。
    Swing では AWT の機能も使うので java.awt.* もインポートします。
    extends で JFrame を継承します。
        import java.awt.*;
        import javax.swing.*;
        class App extends JFrame
        {
        
  2. main() では App Class(このプログラム自信) をインスタンス化(生成)するだけです。
        // Main
        public static void main(String args[])
        {   new App();
        }
        
  3. コンストラクタでは setVisible(true) で JFrame を表示します。
        // Constructor
        public App()
        {   super("Swing DrawRect");
            setSize(160, 120);
            setVisible(true);
        }
        
  4. paint() では赤色の矩形を描画します。
        // Paint Method
        public void paint(Graphics g)
        {   super.paint(g);
            g.setColor(Color.red);
            g.drawRect(20,40,120,60);
        }
        
  5. 「Frame を継承する」と比べると Frame が JFrame に変わるだけでほとんど同じように思えます。
    しかし、プログラムを進めると色々と違いが出てきます。
    もっとも、全く同じなら JFrame を開発した意味が無くなります。 (^_^;)

プログラムの作成

  1. JFrame を継承して Constructor を使わずに作成します。
    //★ JFrame を継承する(Constructor 無し)    前田 稔
    import java.awt.*;
    import javax.swing.*;
    
    class AppDirect extends JFrame
    {
        // Main
        public static void main(String args[])
        {   AppDirect app = new AppDirect();
            app.setSize(160, 120);
            app.setVisible(true);
        }
    
        // Paint Method
        public void paint(Graphics g)
        {   super.paint(g);
            g.setColor(Color.red);
            g.drawRect(20,40,120,60);
        }
    }
    
  2. 説明は先のプログラムを参照して下さい。

超初心者のプログラム入門(Java2)