2013-07-25 4 views
0

Я пытаюсь заставить свое изображение перемещаться по экрану, основываясь на том, какие клавиши со стрелками я использую. Сейчас он не отвечает ни на один нажатие клавиши. Для целей тестирования я только попытался применить использование стрелки вправо. Как мне заставить изображение реагировать при нажатии клавиши? Это то, что я до сих пор:Управление изображением со стрелками

import java.applet.Applet; 
import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
//import java.awt.event.ActionEvent; 
//import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 


public class EC extends Applet{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    int x=50; 
    int y=50; 
    int dx,dy; 
    public void keyPressed(KeyEvent e) 
    { 
     int keyCode = e.getKeyCode(); 
     if(keyCode==KeyEvent.VK_RIGHT) 
     { 
      dx=1; 
      x+=dx; 
     } 
    } 
    public void keyReleased(KeyEvent e) 
    { 
     int keyCode = e.getKeyCode(); 
     if(keyCode==KeyEvent.VK_RIGHT) 
     { 
      dx=0; 
     } 
    } 
    public void paint(Graphics g) 
    { 
     g.drawImage(IllustrationManager.player[0][0],x,y,null); 
    } 


} 
+1

Используйте [* Ключи для ключей *] (http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html), для [пример] (http://stackoverflow.com/a/5797965/230513). – trashgod

ответ

0
@Override 
public void init(){ 
    addKeyListener(new KeyAdapter(){ 
     public void keyPressed(KeyEvent e) 
     { 
      int keyCode = e.getKeyCode(); 
      if(keyCode==KeyEvent.VK_RIGHT) 
      { 
       dx=1; 
       x+=dx; 
       this.repaint(); // forgot this initially 
      } 
     } 
    }); 

} 
2

См Motion Using the Keyboard для задач с использованием KeyListener и лучшим решением, которое использует привязки ключей.

Смежные вопросы