Report2(11/8締め切り)

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

・プログラム

/*
* 作成日  : 2004/11/04
* 作成者  : Subaru KANO
* 学籍番号 : 045720F
* filename:Rep2_b.java
* /

import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;

 

public class Rep2_b extends Applet implements Runnable{
Thread t;

public void init(){
t= new Thread(this);
t.start();
}
public void run(){
try{
while(true) {
repaint();
Thread.sleep(500);
}
}
catch (Exception e) {
}
}

public void paint(Graphics g) {
setBackground(Color.black);
Random a = new Random();

for(int i= 0; i < 1000; i++){
g.setColor(new Color(a.nextInt()));
int x = (int)(800 * a.nextDouble());
int y = (int)(400 * a.nextDouble());

g.drawLine(400,200,x,y);
}
g.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
g.drawString("Hello!!(^_^) / My name is Subaru!",10,455);
g.drawString("This is my first Java Applet.",11,500);
}
}


 

実行結果

・考察

1.Appletとは、WebページのHTMLソースコードから参照されるプログラムである。

2.プログラムの冒頭でクラスをインポートする。
  a.Appletクラスは、全てのアプレットのスーパークラスである。
 b.import java.awt.*;とすることでColor,Font,Graphicsを一度にインポートする事が出来る。
  ・しかし、*で指定した違うパッケージに,同じ名前のクラス名があると困る。
  ・別々にインポートした方がJavaソースを見る時見やすい。
      
3.ランナブルはオブジェクトが独立したスレッド上で動作することを意図していることを示す性質である。
 a.ランナブルなクラスはjava.lang.Runnableをインプリメントし、そのアブストラクトメソッドであるrunメソッドを実装する。
  
4.init()メソッドで、スレッドを起動させる。
      
5.run()メソッドの中では、while文を用い無限ループを作り出し、
 a.repaint()メソッドを呼び出し、再描画を要求する。
 b.500ミリ秒の休止を実行する。
      
6.paint()メソッドでは、以下を行っている。
 a.setBackgroundで背景を黒で塗りつぶす。
 b.setColorメソッドでは整数の乱数を用い、色を指定する。
 c.for文を用い、0から1000までループ。
  c.drowLineメソッドで線を描画させる。
  ・int型で変数x,yに0以上1未満の実数の乱数を掛け代入する。
  ・座標(400,200)から変数(x,y)座標まで線を引く。
  ・線分の表示は、始点と終点の記述が逆転しても変化はない。
  d.g.setFontメソッドでフォントを設定。ここではフォントがBOLD、スタイルは太字かつイタリックで大きさ10ポイント。
  e.g.drawStringメソッドで文字列を描画させる。
 

〜反省&感想〜  

 今回は、はっきり言ってどこから手を付けていいのかわかりませんでした。
でも、Webや教科書で勉強するうちに何となく理解できるようになり、結構プログラムするのが楽しかったです。
初めて321に泊まらずに自力で完成する事ができたレポートかも。独習したので結構知識を得る事が出来たと思います。
 元ネタはj03041さんのレポートの中のb.line.javaです。スレッドを使ったら花火みたいで綺麗だろうなと思い作成しました。
ほんとはこの原理で打ち上げ花火をアプレットで作りたかったんだけど、無念の挫折。。
Javaを勉強していくなかで是非作ってみたいと思います。

〜参考にしたWeb、本〜

 独習Java 第二版 ジョゼフ・オニール

 j03041 report2 http://bw-www.ie.u-ryukyu.ac.jp/~j03041/s4.html

 浅煎り珈琲 Java アプリケーション入門  http://msugai.fc2web.com/java/index.html#applet