Javaアプレットの基本動作
Javaアプレットとして動作させるためにはAppletクラスを継承する必要があります。
このAppletクラスには、少し特殊なメソッドが実装されています。
上記表のメソッドは自分で意図的に呼び出すのではなく、「メソッドが呼び出されるタイミング」に記したブラウザの動作にあわせて自動的に呼び出されるようになっています。
下記にサンプルを記します。
※Javaアプレットを動かすにはclassファイルをHTML文章の中に組み込みブラウザを起動させる必要があります。
詳しくはJavaアプレットの動作方法を参照ください。
上記サンプルを実行すると、マウスでクリックした位置に黒マルが表示されます。
以降、ソースコードについて見ていきます。
Javaアプレットとして動作させるためにAppletクラスを継承しています。
Appletクラスを継承したクラスがJavaアプレットということになります。
また、今回のサンプルではマウスによるクリックイベントも取得しています。
Javaでは「マウスをクリックした」などというユーザ操作をプログラム側で認識できるしくみを用意しています。
そのしくみを使うためMouseListenerインターフェイスを実装しています。
init()メソッド内で、addMouseListener()メソッドを呼び出し、マウスイベントを受け取れる準備をします。
インターフェイスを実装した場合、そのインターフェイスに含まれる全てのメソッドを定義しなくてはなりません。そのため、今回はmousePressed()メソッドしか使用していませんが、使わないメソッドも定義しています。
MouseEventオブジェクトは現在のマウスの座標位置などの情報を持っており、それらの情報をフィールドに保存しています。
repaint()メソッドを呼び出すとpaint()メソッドが呼び出され、アプレットの画面が描画されます。
このAppletクラスには、少し特殊なメソッドが実装されています。
| メソッド名 | メソッドが呼び出されるタイミング |
|---|---|
| init() | ブラウザが起動されて、Javaアプレットが初期化されるとき |
| start() | ブラウザの起動または再読み込みによってJavaアプレットが開始・再開されるとき |
| stop() | 他のWebページに移動するなどにより、Javaアプレットが停止されるとき |
| destroy() | ブラウザが終了し、Javaアプレットが終了するとき |
上記表のメソッドは自分で意図的に呼び出すのではなく、「メソッドが呼び出されるタイミング」に記したブラウザの動作にあわせて自動的に呼び出されるようになっています。
下記にサンプルを記します。
import java.applet.Applet;→ 動作確認
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class applet01 extends Applet implements MouseListener{
int x = 70;
int y = 45;
public void init(){
addMouseListener(this);
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
x = e.getX();
y = e.getY();
repaint();
}
public void mouseReleased(MouseEvent e){
}
public void paint(Graphics g){
g.fillOval(x - 5, y - 5, 10, 10);
}
}
※Javaアプレットを動かすにはclassファイルをHTML文章の中に組み込みブラウザを起動させる必要があります。
詳しくはJavaアプレットの動作方法を参照ください。
上記サンプルを実行すると、マウスでクリックした位置に黒マルが表示されます。
以降、ソースコードについて見ていきます。
import java.applet.Applet;ここでは、Javaが提供するクラスライブラリをプログラム中で使えるようにインポートしています。
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class applet01 extends Applet implements MouseListener{
………
}クラス宣言部です。 Javaアプレットとして動作させるためにAppletクラスを継承しています。
Appletクラスを継承したクラスがJavaアプレットということになります。
また、今回のサンプルではマウスによるクリックイベントも取得しています。
Javaでは「マウスをクリックした」などというユーザ操作をプログラム側で認識できるしくみを用意しています。
そのしくみを使うためMouseListenerインターフェイスを実装しています。
public void init(){
addMouseListener(this);
}ブラウザが起動されて、Javaアプレットが初期化されるときに自動的に呼び出されるinit()メソッドをオーバーライドしています。 init()メソッド内で、addMouseListener()メソッドを呼び出し、マウスイベントを受け取れる準備をします。
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
x = e.getX();
y = e.getY();
repaint();
}
public void mouseReleased(MouseEvent e){
}MouseListenerインターフェイスに含まれているメソッドは下記になります。 | mouseClicked() | マウスをクリックしたとき |
| mouseEntered() | マウスがアプレット内に入ったとき |
| mouseExited() | マウスがアプレット外へ出たとき |
| mousePressed() | マウスのボタンを押したとき |
| mouseReleased() | マウスのボタンをはなしたとき |
インターフェイスを実装した場合、そのインターフェイスに含まれる全てのメソッドを定義しなくてはなりません。そのため、今回はmousePressed()メソッドしか使用していませんが、使わないメソッドも定義しています。
public void mousePressed(MouseEvent e){
x = e.getX();
y = e.getY();
repaint();
}mousePressed()メソッドは、引数としてMouseEventオブジェクトを受け取ります。MouseEventオブジェクトは現在のマウスの座標位置などの情報を持っており、それらの情報をフィールドに保存しています。
repaint()メソッドを呼び出すとpaint()メソッドが呼び出され、アプレットの画面が描画されます。
public void paint(Graphics g){
g.fillOval(x - 5, y - 5, 10, 10);
}GraphicsオブジェクトのfillOval()メソッドにより楕円を描いています。
