| (注意)Applet内をクリックしてからキー操作してください。 [T],[F],[G],[H]キーで画像を移動できる。[Enter]キーで初期位置に戻る。 |
import java.applet.*;
import java.awt.*;
public class ja09 extends Applet
{
int pctX,pctY; //画像の左上座標
Image pct; //移動さす画像
char ck; //キーボードから取得するキャラクタ型
boolean tfgh = false; //T,F,G,Hキーが押されたかどうかを識別
String cs,st;
Font f;
public void init(){
pctX = 200; //画像の初期位置
pctY = 100;
ck = ' ';
st = "";
f = new Font("TimesRoman",Font.PLAIN,16);
pct = getImage(getCodeBase(),"ja09.gif"); //画像の取得
}
public void paint(Graphics g){
g.drawImage(pct,pctX,pctY,this); //画像を描画
g.setColor(Color.blue);
g.setFont(f);
if(tfgh){ //T,F,G,H,Enterキーが押された場合
if(ck == 't')cs = "[T]キーで上に";
if(ck == 'f')cs = "[F]キーで左に";
if(ck == 'g')cs = "[G]キーで下に";
if(ck == 'h')cs = "[H]キーで右に";
if(ck == 10)cs = "[Enter]キーで元の位置に";
g.drawString(cs + "移動しました。現在の左上座標は" + pctX + ":" + pctY,5,15);
}else{
g.drawString("[T]キーで上に,[G]キーで下に,[F]キーで左に,[H]キーで右に移動できます。",5,15);
}
g.drawString(st,30,170); //Applet下部に,T,F,G,H以外の押されたキーを表示する。
}
public boolean keyDown(Event evt,int key){
ck = (char)key; //押されたキーのchar型を取得
switch(ck){
case 't': //[T]キーが押された場合
pctY = pctY - 10; //上に移動
tfgh = true;
break;
case 'f':
pctX = pctX - 10;
tfgh = true;
break;
case 'g':
pctY = pctY + 10;
tfgh = true;
break;
case 'h':
pctX = pctX + 10;
tfgh = true;
break;
case 10: //[Enter]キーが押された場合
pctX = 200; //画像を初期位置に戻す
pctY =100;
tfgh = true;
break;
default: //T,F,G,H,Enterキー以外の場合
st = st + ck;
if(ck == 27)st = ""; //[ESC]キーで文字列をクリアする
tfgh = false;
}
repaint();
return true;
}
}
末尾