文字を出力
グラフィック操作
アプレットは、それ自体がウィンドウオブジェクトです
ウィンドウへの文字の出力は、コマンドラインの出力のそれとは大きく違います
ウィンドウオブジェクトに対して文字を出力する場合は、標準入出力は使えません
そのかわり、ウィンドウのある位置に文字列を出力するというメソッドを使用します
グラフィック操作はjava.awt.Graphicsクラスを使用します
これは、グラフィックス出力に関するメソッド群がカプセル化されている抽象クラスです
これを利用するには、Appletクラスを拡張したクラスでpaint()メソッドをオーバーライドします
このメソッドはコンポーネントを描画するメソッドで、java.awt.Componentクラスで定義されていて
AppletクラスはComponentクラスを拡張しています
このpaint()メソッドをオーバーライドすることで、アプレットのパネルを描きなおします
public void paint(Graphics g)
このメソッドはGraphicsオブジェクトを引数として受け取ります
paint()メソッドを呼び出す必要はなく、自分のコードでこのメソッドをオーバーライドします
文字列の出力はGraphicsクラスのdrawString()メソッドを呼び出します
このメソッドはオブジェクトの指定位置に文字列を出力します
位置の指定はコンポーネントの左上を0とし
そこから、横(x)縦(y)ともに1ずつ増えていきます
xは値が増えるごとに右へ、yは値が増えるごとに下に向かいます
public abstract void drawString( String str, int x, int y )
strには出力する文字列を指定します
xは横、yは縦の開始位置を指定します
たとえば、xが20yが40であれば、コンポーネントの左上から横に20縦に40の位置を開始地点とします
おそらくこの講座を呼んでいる方はSDK、または何らかの言語でGUIアプリ開発の経験者だと思います
もしGUIアプリ開発経験者であれば、この感覚は勘である程度理解しているはずです
あまり深いことを考えるとややこしくなるので、アプレットで文字を出力する時は
とりあえず以下のプログラムのように書けば良いと思っても今は大丈夫でしょう
import java.applet.Applet;
import java.awt.Graphics;
/*<applet code="App1.class" width="400" height="200"></applet>*/
public class App1 extends Applet {
public void paint(Graphics g) {
g.drawString("綺麗な猫耳は好きですか?" , 100 , 100);
}
}
次のような実行結果になりました
上は本物のアプレットです
JVMを実装していて、Javaの実行を許可しているブラウザでなければ実行されません