シリアとミクロネシアの国旗を表示する

Star Class を使うと正多角形や星を回転して、簡単に描画することができます。
今回は星の描画と回転を使ってシリアとミクロネシアの国旗を表示してみましょう。

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

プログラムの作成

  1. メモ帳などでタイプして Flag.java の名前で保存して下さい。
    //★ 国旗を描く(Star Object Class を使う)   前田 稔
    import java.awt.*;
    import javax.swing.*;
    
    class Flag extends JFrame
    {
        public static void main(String args[])
        {   Flag japp = new Flag();
            japp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            japp.setTitle("Flag");
            japp.setSize(650,300);
            japp.setVisible(true);
        }
    
        public void paint(Graphics g)
        {   Star    star= new Star();
            super.paint(g);
            g.setFont(new Font("Helvetica",Font.PLAIN,32));
            g.drawString("シリア",20,64);
            g.setColor(Color.red);
            g.fillRect(10,70,300,66);
            g.setColor(Color.white);
            g.fillRect(10,136,300,66);
            g.setColor(Color.black);
            g.fillRect(10,202,300,67);
            star.cor= new Color(0,80,0);
            star.ViewStar(g,110,172,30);
            star.ViewStar(g,210,172,30);
    
            g.drawString("ミクロネシア",320,64);
            g.setColor(Color.blue);
            g.fillRect(320,70,300,200);
            star.cor= Color.white;
            star.ViewStar(g,470,110,25);
            star.rot= 180;
            star.ViewStar(g,470,230,25);
            star.rot= 36;
            star.ViewStar(g,410,170,25);
            star.ViewStar(g,530,170,25);
        }
    }
    
  2. Star.class をソースプログラムと同じフォルダーに格納して下さい。
    Star.class の説明は Star Class で正多角形と星を描画する を参照して下さい。
  3. Flag.java をコンパイルして class オブジェクトを実行して下さい。
    ページ先頭の画面が表示されたら完成です。
    確認が終われば 「×」をクリックして終了して下さい。

プログラムの説明

Star Class を使うと正多角形や星を簡単に描画することができます。
また色の設定や図形の回転機能も備わっています。
  1. このプログラムは JFrame を継承して、コンストラクタを使わずに作成してみました。
    Swing のプログラムは java.awt.* と javax.swing.* をインポートします。
    main() では StarMain クラスをインスタンス化して、ウインドウ情報を設定します。
        import java.awt.*;
        import javax.swing.*;
        class Flag extends JFrame
        {   public static void main(String args[])
            {   Flag japp = new Flag();
                japp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                japp.setTitle("Flag");
                japp.setSize(650,300);
                japp.setVisible(true);
            }
        
  2. ウインドウを描画する paint() の説明です。
    new Star() で Star Object をインスタンス化します。
    色を設定するときは star.cor に Color を設定して下さい。
    star.cor には規定値として黒が設定されています。
    Color.white のようにインスタンス化しなくても使用可能な色が幾つか用意されています。
    これ以外の色を使うときは new Color(0,80,0) のように赤,緑,青の組み合わせで色を作成して下さい。
  3. シリアの国旗の描画です。
    文字サイズを大きくして(32)"シリア"を表示します。
    赤,白,黒で矩形を表示します。
    濃い緑色で星を2個並べて描画すれば完成です。
        g.setFont(new Font("Helvetica",Font.PLAIN,32));
        g.drawString("シリア",20,64);
        g.setColor(Color.red);
        g.fillRect(10,70,300,66);
        g.setColor(Color.white);
        g.fillRect(10,136,300,66);
        g.setColor(Color.black);
        g.fillRect(10,202,300,67);
        star.cor= new Color(0,80,0);
        star.ViewStar(g,110,172,30);
        star.ViewStar(g,210,172,30);
        
  4. ミクロネシアの国旗の描画です。
    大きな文字サイズ(32)で"ミクロネシア"を表示します。
    文字の色はシリアの星を描画した色をそのまま使っています。
    国旗全体を青色の矩形で塗りつぶします。
    白色で4個の星を回転しながら描画します。
    上部の星は回転しないで、下部の星は180度回転して描画します。
    左右の星は36度回転して描画します。
        g.drawString("ミクロネシア",320,64);
        g.setColor(Color.blue);
        g.fillRect(320,70,300,200);
        star.cor= Color.white;
        star.ViewStar(g,470,110,25);
        star.rot= 180;
        star.ViewStar(g,470,230,25);
        star.rot= 36;
        star.ViewStar(g,410,170,25);
        star.ViewStar(g,530,170,25);
        

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