Frame を継承する

Frame(AWT) を継承して矩形を描画します。

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

プログラムの作成

  1. Frame(AWT) を継承して矩形を描画する方法です。
    //★ Frame を継承する    前田 稔
    import java.awt.*;
    
    public class App extends Frame
    {
        // Main
        public static void main(String args[])
        {   new App();
        }
    
        // Constructor
        public App()
        {   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. AWT(Abstract Windowing Tools) を使用するので java.awt.* をインポートします。
    extends Frame で Frame を継承します。
        import java.awt.*;
        public class App extends Frame
        {
        
  2. main() では App Class(このプログラム自信) をインスタンス化(生成)するだけです。
        // Main
        public static void main(String args[])
        {   new App();
        }
        
  3. コンストラクタでは setVisible(true) で Frame を表示します。
        // Constructor
        public App()
        {   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);
        }
        

プログラムの作成

  1. Frame を継承して Constructor を使わずに作成します。
    //★ Frame を継承する(Constructor 無し)    前田 稔
    import java.awt.*;
    
    public class AppDirect extends Frame
    {
        // 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. 説明は先のプログラムを参照して下さい。

プログラムの作成

  1. 普通はパラメータで渡された g を使うのですが Frame の Graphics を直接取得してみました。
    //★ Frame の Graphics を直接取得    前田 稔
    import java.awt.*;
    
    public class DrawRect extends Frame
    {
        // Main
        public static void main(String args[])
        {   new DrawRect();
        }
    
        // Constructor
        public DrawRect()
        {   super("DrawRect");
            setSize(300,200);
            setVisible(true);
        }
    
        // Paint Method
        public void paint(Graphics g)
        {   Graphics gra = this.getGraphics();
            gra.setColor(Color.red);
            gra.drawRect(20,50,260,120);
        }
    }
    
  2. this.getGraphics() で現在の Frame の Graphics を取得します。
    Graphics gra が取得出来れば、後は同じです。
        public void paint(Graphics g)
        {   Graphics gra = this.getGraphics();
            gra.setColor(Color.red);
            gra.drawRect(20,50,260,120);
        }
        

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