meow00
asked on
KeyEvent doesn' work ....
Hi experts,
Does anyone know how come my keyevent doesn't work ? many thanks !!!
meow
-----------------
import javax.swing.*;
import java.awt.* ;
import java.awt.event.* ;
public class Test extends JFrame implements KeyListener, ActionListener{
private int snake_x[] = new int[150] ;
private int snake_y[] = new int[150] ;
private int snake_dir[] = new int[150] ;
private final int Delta_x = 20, Delta_y = 20 ;
private static final int UP = 0 ;
private static final int RIGHT = 1 ;
private static final int DOWN = 2 ;
private static final int LEFT = 3 ;
private javax.swing.Timer headTimer ;
ImageIcon headImg = new ImageIcon(getClass().getRe source("he ad.gif"));
/** Creates a new instance of SnakeFrame */
public Test() {
snake_x[0] = 200 ; snake_y[0] = 200 ; snake_dir[0] = 3 ;
headTimer = new Timer(400, this);
headTimer.start();
setDefaultCloseOperation(J Frame.EXIT _ON_CLOSE) ;
setSize(600,600) ;
show() ;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Test mySnake = new Test() ;
// TODO code application logic here
}
public void paint(Graphics g)
{
super.paint(g);
g.drawImage( headImg.getImage(), snake_x[0], snake_y[0], 20, 20, null) ;
}
public void actionPerformed(ActionEven t e) {
if ( snake_dir[0] == 0) snake_y[0] -= Delta_y ;
if ( snake_dir[0] == 1) snake_x[0] += Delta_x ;
if ( snake_dir[0] == 2) snake_y[0] += Delta_y ;
if ( snake_dir[0] == 3) snake_x[0] -= Delta_x ;
repaint() ;
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode()==KeyEvent. VK_UP) {
snake_dir[0] = 0 ;
System.out.println("UP") ;
}
else if (e.getKeyCode()==KeyEvent. VK_RIGHT) {
snake_dir[0] = 1 ;
System.out.println("RIGHT" ) ;
}
else if (e.getKeyCode()==KeyEvent. VK_DOWN) {
snake_dir[0] = 2 ;
System.out.println("DOWN") ;
}
else if (e.getKeyCode()==KeyEvent. VK_LEFT) {
snake_dir[0] = 3 ;
System.out.println("LEFT") ;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
Does anyone know how come my keyevent doesn't work ? many thanks !!!
meow
-----------------
import javax.swing.*;
import java.awt.* ;
import java.awt.event.* ;
public class Test extends JFrame implements KeyListener, ActionListener{
private int snake_x[] = new int[150] ;
private int snake_y[] = new int[150] ;
private int snake_dir[] = new int[150] ;
private final int Delta_x = 20, Delta_y = 20 ;
private static final int UP = 0 ;
private static final int RIGHT = 1 ;
private static final int DOWN = 2 ;
private static final int LEFT = 3 ;
private javax.swing.Timer headTimer ;
ImageIcon headImg = new ImageIcon(getClass().getRe
/** Creates a new instance of SnakeFrame */
public Test() {
snake_x[0] = 200 ; snake_y[0] = 200 ; snake_dir[0] = 3 ;
headTimer = new Timer(400, this);
headTimer.start();
setDefaultCloseOperation(J
setSize(600,600) ;
show() ;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Test mySnake = new Test() ;
// TODO code application logic here
}
public void paint(Graphics g)
{
super.paint(g);
g.drawImage( headImg.getImage(), snake_x[0], snake_y[0], 20, 20, null) ;
}
public void actionPerformed(ActionEven
if ( snake_dir[0] == 0) snake_y[0] -= Delta_y ;
if ( snake_dir[0] == 1) snake_x[0] += Delta_x ;
if ( snake_dir[0] == 2) snake_y[0] += Delta_y ;
if ( snake_dir[0] == 3) snake_x[0] -= Delta_x ;
repaint() ;
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode()==KeyEvent.
snake_dir[0] = 0 ;
System.out.println("UP") ;
}
else if (e.getKeyCode()==KeyEvent.
snake_dir[0] = 1 ;
System.out.println("RIGHT"
}
else if (e.getKeyCode()==KeyEvent.
snake_dir[0] = 2 ;
System.out.println("DOWN")
}
else if (e.getKeyCode()==KeyEvent.
snake_dir[0] = 3 ;
System.out.println("LEFT")
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.