2013-11-24 4 views
-2

Я хотел бы сделать игру, где квадрат идет вокруг с помощью клавиш со стрелками, но я не могу объявить его см moveItОбъявление KeyEvent

public void moveIt(/*Won't work here, since its started on run method*/) { 


KeyEvent evt=/*???*/; //how do i declare this keyevent? 


switch (evt.getKeyCode()) { 
     case KeyEvent.VK_DOWN: 
      myY += 5; 
      break; 
     case KeyEvent.VK_UP: 
      myY -= 5; 
      break; 
     case KeyEvent.VK_LEFT: 
      myX -= 5; 
      break; 
     case KeyEvent.VK_RIGHT: 
      myX += 5; 
      break; 
    } 



} 

myX и myY являются координаты прямоугольника, чтобы использовать в другом способе.

Кстати, я новичок в java. Его первый язык программирования.

ответ

0

Короткий ответ: не Объявление KeyEvent. KeyEvent генерируется пользователем, нажимая клавишу. Затем это событие подхвачено KeyListener, где вы поместите свою логику для обработки ключевого события.

public class MyClass extends JPanel implements KeyListener 
{ 
    // Add your intialization code here 

    @Override 
    public void keyTyped(KeyEvent e) 
    { 
     switch (evt.getKeyCode()) 
     { 
      case KeyEvent.VK_DOWN: 
       myY += 5; 
       break; 
      case KeyEvent.VK_UP: 
       myY -= 5; 
       break; 
      case KeyEvent.VK_LEFT: 
       myX -= 5; 
       break; 
      case KeyEvent.VK_RIGHT: 
       myX += 5; 
       break; 
     } 
    } 
} 

Посмотрите на this tutorial. Вы пропустили трюк, и пересмотр основ, скорее всего, вернет вас на курс.

+0

Но как я могу назвать этот метод другим методом? – user2875050

+0

Вы прочитали учебник? Прочтите. Вся суть KeyListener заключается в том, что он слушает ключевые события! Вы не вызываете этот метод напрямую. Вы должны прочитать учебник прямо сейчас, потому что то, что, по вашему мнению, происходит, явно не то, что происходит. – MarsAtomic

+0

JFrame не предназначен для KeyEvents – mKorbel