アットウィキロゴ

メニューの選択

カーソルを操作する

ここではカーソルの操作だけを実装したいと思います。
選択した項目のページに飛ぶのは次でやります。
さて、まずは基礎にもありましたキー入力の処理です。

public void keyPressed(KeyEvent e){
	int key=e.getKeyCode();
	
	if(key==KeyEvent.VK_UP){
		//カーソル位置を上に移動
		this.dy-=CL;
		//1番上のメニューを超えた場合
		if(dy<y){
			this.dy=y;
		}
	}
	
	if(key==KeyEvent.VK_DOWN){
		//カーソル位置を下に移動
		this.dy+=CL;
		//1番下のメニューを超えた場合
		if(dy>y+(CL*MENU-CL)){
			this.dy=y+(CL*MENU-CL);
		}
	}
	//再描画
	repaint();
}

今回はカーソルの移動なので、ボタンを1回押せばいいという処理ではありません。
↑↓でキーボードを操作したときにカーソルがメニュー項目内で移動するような処理を書きます。
前回 ( x , y ) でメニューの初期表示位置を定義し、そこからCL*iで位置をずらしました。
なのでカーソルにも同じようにCLを足し引きすることで項目を移動しています。
注意しなければならないのは、カーソルの移動範囲を制限しなければいけないことです。
制限してやらないと、画面外までカーソルが移動します。
制限の仕方は簡単で、メニューの一番上の位置を超えた場合とメニューの一番下の位置を超えた場合の
2通りを書いてやればいいわけです。
最後に描画処理です。

public void paintComponent(Graphics g){
	super.paintComponent(g);
	//メニューを画面に表示
	for(int i=0;i<MENU;i++){
		g.drawString(menuList[i],x,y+CL*i);
	}
	//カーソルの描画
	g.drawImage(cursorImage,dx-CL,dy-CL,this);
}

前回の処理にカーソルの描画が加わってるだけですね。
今回は文字列を描画してカーソルのイメージを取り込みキー入力の処理をするという
ちょっとめんどぃ方法を取りました。
簡単な方法としてはJListクラスでリストを作る方法もありますが
描画位置を設定するのが非常に大変なため使ってません。

  • サンプルのJARファイルはスポンサーリンクの↓に張ってあるので自由にダウンロードしてくださぃ♪


最終更新:2008年06月24日 12:25
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル