new で生成する

new で Frame(JFrame) を生成して矩形を描画します。

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

プログラム−1

  1. Frame frame = new Frame("View Frame"); で Frame を生成して矩形を描画します。
    //★ new で Frame を生成して矩形を描画    前田 稔
    import java.awt.*;
    
    public class App
    {   // Main()
        public static void main(String argv[])
        {   App app = new App();
        }
    
        // Constructor
        App()
        {   Frame frame = new Frame("View Frame");
            frame.setSize(130,120);
            frame.setLayout(new BorderLayout());
            MyCanvas canvas = new MyCanvas();
            frame.add(canvas, BorderLayout.CENTER);
            frame.setVisible(true);
        }
    }
    
    // MyCanvas Class
    class MyCanvas extends Canvas
    {   public void paint(Graphics g)
        {   g.setColor(Color.red);
            g.drawRect(10,10,120,50);
        }
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java2 を動かす を参照して下さい。

プログラム−1の説明

  1. AWT(Abstract Windowing Tools) を使用するので java.awt.* をインポートします。
    main() では App Class をインスタンス化(生成)するだけです。
        import java.awt.*;
        public class App
        {   // Main()
            public static void main(String argv[])
            {   App app = new App();
            }
        
  2. コンストラクタでは、Frame に Canvas を張り付けます。
    setLayout() でレイアウトを設定します。
    new MyCanvas() で MyCanvas Class をインスタンス化します。
    add(canvas, BorderLayout.CENTER) で Frame に配置します。
        // Constructor
        App()
        {   Frame frame = new Frame("View Frame");
            frame.setSize(130,120);
            frame.setLayout(new BorderLayout());
            MyCanvas canvas = new MyCanvas();
            frame.add(canvas, BorderLayout.CENTER);
            frame.setVisible(true);
        }
        
  3. Canvas を継承した MyCanvas Class です。
    paint() メソッドで矩形を描画します。
        // MyCanvas Class
        class MyCanvas extends Canvas
        {   public void paint(Graphics g)
            {   g.setColor(Color.red);
                g.drawRect(10,10,120,50);
            }
        }
        

プログラム−2

  1. Constructor を使わずに new で Frame を生成します。
    //★ new で Frame を生成して矩形を描画    前田 稔
    import java.awt.*;
    
    public class AppDirect
    {   // Main()
        public static void main(String argv[])
        {   AppDirect app = new AppDirect();
            Frame frame = new Frame("View Frame");
            frame.setSize(130,120);
            frame.setLayout(new BorderLayout());
            MyCanvas canvas = new MyCanvas();
            frame.add(canvas, BorderLayout.CENTER);
            frame.setVisible(true);
        }
    }
    
    // MyCanvas Class
    class MyCanvas extends Canvas
    {   public void paint(Graphics g)
        {   g.setColor(Color.red);
            g.drawRect(10,10,120,50);
        }
    }
    
  2. プログラム−1は main() で生成された App Class の Constructor で Frame を生成しましたが、今回は main() で直接生成しています。
    説明は「プログラム−1の説明」を参照して下さい。

プログラム−3

  1. new で JFrame を生成して矩形を描画します。
    //★ new で JFrame を生成して矩形を描画    前田 稔
    import java.awt.*;
    import javax.swing.*;
    
    public class App
    {   // Main()
        public static void main(String argv[])
        {   App app = new App();
        }
    
        // Constructor
        App()
        {   JFrame jframe = new JFrame("View JFrame");
            jframe.setSize(130,120);
            jframe.setLayout(new BorderLayout());
            MyCanvas canvas = new MyCanvas();
            jframe.add(canvas, BorderLayout.CENTER);
            jframe.setVisible(true);
        }
    }
    
    // MyCanvas Class
    class MyCanvas extends Canvas
    {   public void paint(Graphics g)
        {   g.setColor(Color.red);
            g.drawRect(10,10,120,50);
        }
    }
    
  2. プログラム−1では Frame を使いましたが、Frame に代えて JFrame を使います。
    説明は「プログラム−1の説明」を参照して下さい。

プログラム−4

  1. Constructor を使わずに new で JFrame を生成します。
    //★ Constructor を使わずに new で JFrame を生成して矩形を描画    前田 稔
    import java.awt.*;
    import javax.swing.*;
    
    public class AppDirect
    {   // Main()
        public static void main(String argv[])
        {   AppDirect app = new AppDirect();
            JFrame jframe = new JFrame("View Frame");
            jframe.setSize(130,120);
            jframe.setLayout(new BorderLayout());
            MyCanvas canvas = new MyCanvas();
            jframe.add(canvas, BorderLayout.CENTER);
            jframe.setVisible(true);
        }
    }
    
    // MyCanvas Class
    class MyCanvas extends Canvas
    {   public void paint(Graphics g)
        {   g.setColor(Color.red);
            g.drawRect(10,10,120,50);
        }
    }
    
  2. プログラムー2 の JFrame 版で、Frame に代えて JFrame を使います。

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