[課題]

講義資料のJavaアプレットを参考に、簡単なディスプレイ出力Javaアプレット を作成せよ。


例題プログラムHello.java
import java.applet.Applet;                          // 短名 Applet
import java.awt.Graphics;                           // 短名 Graphics

public class Hello extends Applet {                // サブクラス Helloa
    public void paint(Graphics g) {                 // paint()メソッド
        g.drawString("Hello, Java world!", 30, 40); // 文字列描画メソッド
    }
}


例題プログラムCircles.java

import java.awt.*;        // ウィンドウ関連ツール(AbstractWindowToolkit)を使う
import java.util.Random;  // 乱数を使う
import java.applet.Applet;

public class Circles extends Applet {                // アプレットの名前は Circles にする
    public void paint(Graphics g) {                  // 描画手順は以下の 通り
        Random a = new Random();                     // 新しい乱数列 aを用意する
        for (int i = 0; i < 1000; i++) {             // 0 から 999 までループ
            g.setColor(new Color(a.nextInt()));      // 整数の乱数を発生し,それで色を決める
            int x = (int)(300 * a.nextDouble());     // 整数変数xに300×(0以上1未満の実数の数)
                                       を切り捨てて整数にして)代入する。
            int y = (int)(100 * a.nextDouble());     // 上と同様
            int r = (int)(40 * a.nextDouble()) + 10; // 上と同様
            g.fillOval(x - r, y - r, 2 * r, 2 * r);  // 中心 (x,y),半径r の円板を描く
        }
    }
}


Circles.java実行結果



〜例題の考察〜


a.参考プログラム(Hello.java)の考察


import java.applet.Applet;
import java.awt.Graphics;

public class Helloa extends Applet {                
    public void paint(Graphics g) {                 
        g.drawString("Hello, Java world!", 30, 40); 
    }
}




b.参考プログラム(Circles.java)の考察


import java.util.Random;
Random a = new Random();

g.setColor(new Color(a.nextInt()));

int x = (int)(300 * a.nextDouble());
int y = (int)(100 * a.nextDouble());
int r = (int)(40 * a.nextDouble()) + 10;

g.fillOval(x - r, y - r, 2 * r, 2 * r);



〜ソースプログラム〜

オリンピック!

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
   
public class Olympic extends Applet{
public void paint(Graphics g){

g.setColor(Color.blue);     //青色の円を書く
g.drawOval(5,5,60,60);       

Color black = new Color(0,0,0); //黒いロのClor型オブジェクト
g.setColor(black);       //blackで指定した色の円を書く  
g.drawOval(75,5,60,60);  

Color red = new Color(255,0,0);   //赤色の円を書く
g.setColor(red);
g.drawOval(145,5,60,60);    

g.setColor(new Color(240,240,0));   //黄色の円を書く
g.drawOval(40,35,60,60);      

g.setColor(new Color(0,240,0));    //緑の円を書く
g.drawOval(110,35,60,60);
}
}


実行結果

〜考察〜


g.setColor(Color.blue);
g.fillOval(5,5,60,60); 
  • 8~9行目、使用頻度の高い色はColorオブジェクトとしてフィールド値が用意してあります.
    blueもその中の一つでこれらを用いるにはg.setColor(Color.いろ);のようにし ます。
    g.drawOval(5,5,60,60)でx座標5、y座標5の位置に高さ60、幅60の円を描 きます

    Color black = new Color(0,0,0);
    g.setColor(black);     
    g.fillOval(75,5,60,60);    
  • 11~13行目、青色の円はColorオブジェクトを使いましたが、
    ここではオブジェクトを自分で作ってそれを引数にしてみた。
    new Color(0,0,0)の部分で色を指定しています。
    new Color(赤色の強さ、緑、青)となっており0〜255の範囲の値を入れます。
    指定した色をblackに入れてblackを引数の所に入れています。


    〜反省・感想〜

    例題の考察からつまずいてかなり苦労した。でも分かってくるとけっこうおもし ろかった。次の課題も頑張りまっす!