プログラム
- import java.applet.Applet; // 短名
- Applet
- import java.awt.*;
- /*
- <applet code="Colorbars"width=260 height=260 >
- </applet>
- */
-
- public class Colorbars extends Applet { // サブクラス
- Color colors[] = { Color.black, Color.blue, Color.cyan,
- Color.darkGray, Color.gray, Color.green,
- Color.lightGray, Color.magenta,
- Color.orange, Color.pink, Color.red,
- Color.white, Color.yellow };
-
- public void paint(Graphics g) { // paint()メソッド
- int deltax = 260 / colors.length;
- for (int i = 0; i < colors.length; i++ ) {
- g.setColor(colors[i] );
- g.fillRect(i * deltax, 0, deltax, 260);
- }
- }
- }
- 課題(1)と同じように、1行目で java.applet.Appletクラス、2行目でjava.awt.Graphics;をインポートし\ています。
- 課題(1)と同じように、4行目のコメント内には HTML ソースコードが入っている。内容働きもちろん同じである。
- 9行目では、このColorbarsクラスが Appletクラスを拡張する事を宣言している。
- 10行目から 14行目までは、Colorクラスで定義されている 各色に対応している関数をよびだし、宣言しています。
- プログラム中の13色は、Colorクラスで定義されている特定の色を表す定数の全てである。
- 16行目では、paint()メソッド定義をしている。
- 17行目では、整数型の関数 deltax を宣言。その値に 260 /colors.lengthを代入。
colors.length とは、ここで使われてる色の種類数を表すcolorsのコンストラ
クタである。つまり、260(表示するウインドウの幅)を色の数で割り 一色あ
たりの色の帯の幅を計算していることになる。
- 18行目は C言語にもあるような for文を使ったループである。構造は
for(初期値;終了条件;繰り返される演算);とC言語と全く
同じだが、文の要素を区切る文字は(カンマ,)ではなく(セミコロン;)でない
とエラーになってしまう。ここでは、以下のプログラムを全色分行う。
- gのコンストラクタである、setColor()メソッドを宣言。引数には colors
を順番にうけとる。
- gのコンストラクタであるfillRect()メソッドを行う。このメソッドは指
定された色の四角形で、指定された場所を塗りつぶすメソッドである。
その構造は
g.fillRect(x座標,y座標,幅,高さ);であり、ここでは X座標は各色が重ならな
いように工夫し、また 高さも整数関数 deltax を使っている。
カラ−の使用
Color();と記述する。
- red,blue.green等 今回のように引数に色の名前を渡す事もできる。
- 引数に整数の値を渡す事により、その値の対応したcolorを設定する事も
できる。その場合 Bit23~16が赤,15~8が緑,7~0が青である。