Reoirt2
		Day :2003/10/20
  ID  :035740F
		Name:根保光秀
		
		!!!  This Page Is Made By Shift JIS  !!!


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



もくじ

講義資料Javaアプレット

a.文字出力Javaアプレット

b.図形出力Javaアプレット

c.考察

d.感想・反省









文字出力Javaアプレット   サンプル


j03040% cat Helloa.java
import java.applet.Applet;             //Applet
import java.awt.Graphics;              //Graphics

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



実行結果ーーーーーーーー→ココ



図形出力Javaアプレット   サンプル


j03040% cat Circles.java
import java.awt.*;
import java.util.Random;
import java.applet.Applet;

public class Circles extends Applet{
    public void paint(Graphics g){
        Random a= new Random();
        for(int i=0;i<1000;i++){
            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);
            
        }
    }
}


実行結果ーーーーーーーー→ココ








a.文字出力アプレット


文字の色や表示位置を変えたりして出力するプログラム



j03040% cat Him.java
import java.applet.Applet;         //Appletインターフェースを読み込む
import java.awt.Graphics;         //Graphicsインターフェースを読み込む
import java.awt.*;      //awtインターフェースを全て読み込む

public class Him extends Applet{    //アプレットを作る時の呪文的行
    public void init(){                               //intiメソッド
        setBackground(Color.black);           //背景の色を指定
    }
    public void paint(Graphics g){             //Graphicsメソッド
        g.setFont(new Font("serif",Font.BOLD,20));       //フォントを指定
        g.setColor(Color.green);                                                  //文字の色を指定
        g.drawString("Smile Full Island Okinawa",10,40);    //文字を出力

        g.setColor(Color.orange);
        g.drawString("Why must We Cry??",80,150);

        g.setColor(Color.red);
        g.drawString("One Love",40,200);
    }
}




実行結果ーーーーーーーーーーー→ココ











b.図形表示アプレット




円を使ったへんな図形を表示するプログラム


j03040% cat rep2b.java
import java.applet.Applet;       //必要なAPIを読み込む
import java.util.Random;    
import java.applet.*;
import java.awt.*;

public class rep2b extends Applet {   //Appletの呪文
    public void init(){                                //initメソッド
        setBackground(Color.black);            //背景色の指定
    }

    public void paint(Graphics g){               //Graphicsメソッド
        Random a = new Random();               //乱数を得る
        int x=150;                                       //座標x
        int y=150;                                       //座標y
        for(int i=0;i<=10;i++){                     //0〜10まで1ずつ増える
            g.setColor(new Color(a.nextInt()));    //ランダムに色を指定
            g.drawArc(x-10*i,y-10*i,20*i,20*i,20*i,-270);  //角度をずらしながら円弧を出力
        }
    }



実行結果ーーーーーーーーーーー→ココ






c.考察




考察のポイント
Javaアプリケーションでは必ずMainメソッドが必要だったのに
JavaアプレットではMainメソッドがなくても実行できる。
またpaintメソッドやinitメソッド等色々なメソッドが使える。、、、、、なぜ?
         ↓そこで
1,メソッドって何?。
2.APIって何?




1.メソッドの意味を理解する。

     メソッドとは、、、、、、ある機能を実現するために一連の処理手続きをまとめたものである。
                 

つまりC言語で言う関数みたいなものです。具体的な例をあげると


動作 C言語---関数--- Java Applet ---メソッド---
文字を表示する printf() drawString()
文字を小文字にする tolower() toLowerCase()
aのb乗を計算する pow(a,b) pow(a.b)
aの平方根を計算する sqrt(a) sqrt(a)



2.いろんなメソッド
JavaアプレットにはC言語にはないようないろんなメソッドが用意されています。
オブジェクト思考の言語らしくマウスでクリックした時に実行されるメソッドなどがあります。
代表的なメソッドをあげてみました。

動作 メソッド名
一番最初に実行されるメソッド inti()
線を引く drawLine()
四角形を書く drawRect()
塗りつぶされた四角形を書く fillRect()
丸長方形を書く drawRoundRect()
多角形を書く drawPoligon()
色を変える setColor()
クリックした時に実行されるメソッド mouseDown()
マウスが触れた時に実行されるメソッド mouseEnter()


3.メソッドを使う時に必要なAPI


APIとはApplication Program Interface の略でC言語で言うヘッダファイルみたいなモノです。
を読み込んでなかったらprintf関数は使えないようにJavaでも使うメソッドに対応した
APIを読み込む必要があります。

※課題1で作ったJavaプログラムの場合、APIのフルパスを指定しているのでimportしていなかった。

そこで課題2で使っているメソッドがどのAPIに属しているのか調べてみました。

Java.awtに属するメソッド
名前 説明
Color() 色に関係するメソッド
Font() 文字フォントに関係するメソッド

Java.awt.Graphicsに属するメソッド
名前 説明
drawString() 文字列を書く
fillOval() 塗りつぶし円を書く
drawArc() 円弧を書く

Java.util.Randomに属するメソッド
名前 説明
Random() 乱数を得る



今回の課題で使用しているメソッドのインターフェースは上記のモノだと分かりました。







感想・反省

Javaアプレット入門的な課題だったので比較的簡単にできました
だけどAPIを調べてみると物凄い数があって驚きました。
メソッドなんてAPIの何倍もあって、、、、奥が深いな〜と思いました。

ボタンを押したら実行するメソッドとか
オブジェクト思考ならではのメソッドも興味深かったです。

反省する所はやっぱり考察ですね
出来上がってみても、これで良いのか?って感じでした。

あとは琉大祭で全部飛んでいったあとのテストが心配です。
教科書を見ても良いって事だけどそれって
『見ないと解けないよ』って言うメッセージですよね?

トラ本以外の教科書を見るのもアリなのでしょうか?



参考文献

http://hwb.ecc.u-tokyo.ac.jp/topics/programming/applet/top.html
http://www.rsch.tuis.ac.jp/~mizutani/online/process/index.html
http://www.mybrain.jp/java/index.html