|
|
02/05(Wed) 16:55
■ 図形を描く、図形を色で塗りつぶす、テキストを表示する
■やりたいこと
- 青色の背景に、直径 600px の半円を描き、黒色に塗りつぶす。
- 上下 20px、左右 10pxの、のりしろをとる。
- 座標(200px,150px)の位置に黄色の星を描き、星の4px上に白色の文字「北極星」を書く。
- 半円の下に薄い灰色の方角バーを描き、その中に赤で方角を書く。
■ソースsky0.java
/***************************************************************
* 星空ウォッチング(プラネタリウム) *
* by「菊池さん」 *
**************************************************************/
import java.applet.Applet;
import java.awt.*;
public class sky0 extends Applet {
public void init() {
setBackground(new Color(0,0,192)); //背景色
}
public void paint(Graphics draw_panel) {
int R = 600; //天球の半径
int offsetX = 10; //横両サイドのりしろ
int offsetY = 20; //縦両サイドのりしろ
int msize = 12; //表示文字のサイズ(px)
int X = 200, Y = 150; //星座座標
String seiza_name = "北極星"; //星座名
resize(R+offsetX*2,R/2+offsetY*2+msize); //描画サイズ設定
draw_panel.setColor(Color.black);
draw_panel.fillArc(offsetX,offsetY,R,R,0,180); //半天球描画
draw_panel.setColor(Color.yellow);
draw_panel.fillOval(X,Y,5,5); //星座描画
draw_panel.setColor(Color.white);
draw_panel.drawString(seiza_name, X,Y-4); //星座名描画
draw_panel.setColor(new Color(230,230,230));
draw_panel.fillRoundRect(offsetX,R/2+offsetY,R,msize,10,5); //方角バー描画
draw_panel.setColor(Color.red);
draw_panel.drawString("西",offsetX,R/2+offsetY+msize-2); //方角描画
draw_panel.drawString("北",R/2+offsetX-msize/2,R/2+offsetY+msize-2);
draw_panel.drawString("東",R+offsetX-msize,R/2+offsetY+msize-2);
}
}
|
■ソースの説明
- 1〜4行め コメント行=/* 〜 */ に囲まれた部分がコメント行になります。
- 5〜6行め import 文とクラスの定義= java.appletパッケージにあるAppletクラスと、java.awtパッケージにある全てのクラス(*はその意味)をこのプログラムで使用する宣言文です。この2行はアプレットの先頭にいつも記述すると覚えておきます。
- 8行め クラス定義= sky0 というクラスを定義します。public は他から引用可能なクラスの意味です。この名前がソースファイルのファイル名になります(sky0.java)。これも sky0 以外はこのまま書くと覚えましょう。
- 9行め メソッド定義= public で void (帰り値を持たない=何らかの計算結果を数値として出さない)関数 init を定義します。この init も基本的にアプレットには必ず出てくると考えて下さい。この関数は、アプレットの実行にあたって必要な前処理をします。
- 10行め setBackground(Color.black)で、背景を黒色に指定します。
- 11行め ここまでが init の内容です。
- 12行め メソッド定義= public void な関数 paint を定義します。これは Graphics クラスの属性を持った draw_panel を定義しています。
- 13〜18行め 変数名の型定義と初期値設定。
- 20行め 直径(R)をパラメータに描画サイズを計算し、リサイズ設定します。
- 22行め setColor(Color.black)で半円の色を黒色にする定義です。
- 23行め Graphicsクラスの関数 fillArc を使って、始点座標(offsetX,offsetY)で横(R=600px)縦(R=600px)の
- 矩形に内接する、塗りつぶし半円(0°〜180°)を描画します。
- 25〜26行め Graphicsクラスの関数 fillOval を使って、座標(X=200,Y=150)の位置に、
- 横(5px)縦(5px)の矩形に内接する、黄色の塗りつぶし楕円(指定矩形が正方形なので実際は円)を描きます。
- 28〜29行め Graphicsクラスの関数 drawString を使って、4px上(座標(X,Y-4))の位置に
- 白色の文字「北極星」を描きます。
- 31〜32行め Graphicsクラスの関数 fillRoundRect を使って、薄い灰色で塗りつぶした
- 角が丸い(横円弧=10、横円弧=5)四角形を描きます。
- 34〜37行め Graphicsクラスの関数 drawString を使って、方角バーの左、中央、右の位置に
- 赤色の文字で、方角「西」「北」「東」を描きます。
- 38行め paint はここまで。
- 39行め sky0 クラス はここまで。
■アップレットを呼び出すhtml文sky0.html
アプレットを表示するための枠の大きさ(620,352)に指定。
■コンパイルとアップレットの実行(第1回参照)
ソースsky0.javaとアップレットを呼び出すhtml文sky0.htmlをMyjavaフォルダに入れjdkのjavacでコンパイルした後、ブラウザでsky0.htmlを表示するか、appletviewerでsky0.htmlを実行して見ましょう。プラネタリウムの天球アップレットsky0.classが表示されます。
|
|