java键盘事件
在以下程序中我想在红色字体(或******处)处写入一句if语句,
当开始按键盘方向键的时候跳出循环,从而转向执行该按键事件,不知道这个if语句的条件怎么写?
请各位指点指点!
在此谢谢咯!
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Test2 extends Applet implements KeyListener{
int x = 0,y = 0;
int r = 20;
public void init(){
this.addKeyListener(this);
}
public void paint(Graphics g){
g.setColor(Color.red) ;
g.fillOval(x, y, r,r) ;
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode())
{ case KeyEvent.VK_LEFT:
x = x - 2 ;
if( x<= 0 ) x = 800;
setLocation(x, y) ; break ;
case KeyEvent.VK_RIGHT:
{
x = x + 2 ;
if( x>800 ) x = 0 ;
setLocation( x, y ) ;
break ;
}
case KeyEvent.VK_UP:
{
y = y - 2 ;
if(y<=0)
y=600;
setLocation(x, y);
break;
}
case KeyEvent.VK_DOWN:
{
y = y + 2;
if(y>=600) y = 0 ;
setLocation(x, y) ;
break;
}
}
}
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode())
{ case KeyEvent.VK_LEFT:
while(true)
{x = x - 2 ; setLocation( x, y );
try {
Thread.sleep(100);
}
catch (InterruptedException e1) {
e1.printStackTrace();
}
****** if()break;
if( x<= 0 ) {
x = 800;
break;}
}
case KeyEvent.VK_RIGHT:
while(true){
x = x + 2 ; setLocation( x, y ) ;
try {
Thread.sleep(100);
}
catch (InterruptedException e1) {
e1.printStackTrace();
}
if( x>800 ){
x = 0 ;
//setLocation( x, y ) ;
break ;}
}
case KeyEvent.VK_UP:
while(true){
y = y - 2 ; setLocation( x, y ) ;
try {
Thread.sleep(100);
}
catch (InterruptedException e1) {
e1.printStackTrace();
}
if(y<=0){
y=600;
//setLocation(x, y);
break;}
}
case KeyEvent.VK_DOWN:
while(true){
y = y + 2; setLocation( x, y ) ;
try {
Thread.sleep(100);
}
catch (InterruptedException e1) {
e1.printStackTrace();
}
if(y>=600){
y = 0 ;
//setLocation(x, y) ;
break;}
}
}
}
public void keyTyped(KeyEvent e) {
}
}