Вот что внутри моей keyPressed
:KeyListener - мне нужно вызвать метод KeyPressed в моей основной?
public class Movie extends JFrame implements KeyListener {
public static Sprite star1 = new Sprite("Assets/star1.png");
public static Sprite star2 = new Sprite("Assets/star2.png");
public static Sprite star3 = new Sprite("Assets/star3.png");
public void init(){
this.addKeyListener(this);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent e) {
System.out.println("KEY PRESSED: " + e.getKeyChar());
animation window = new animation(500, 450); //length , height
if (e.getKeyCode() == KeyEvent.VK_DOWN)
{
setFocusable(true);
Movie.star1.setPosition(Movie.star1.getXposition() -100, 0);
window.frameFinished();
}
else if (e.getKeyCode() == KeyEvent.VK_UP)
{
setFocusable(true);
Movie.star1.setPosition(Movie.star1.getXposition() +100, 0);
window.repaint();
}
}
Мой объект не перемещается при нажатии клавиш со стрелками нажимаются.
Все, что я хочу знать - это потому, что мне нужно называть метод keyPressed(KeyEvent e)
в моей основе? Когда я называю это, я получаю сообщение об ошибке, которое утверждает:
не может быть решена в переменной
Объекты, которые я хочу, чтобы переместить находятся в гигантском цикле.
К чему вы добавили слушателя? – immibis
Вы реализовали KeyListener? – svarog
Непосредственно, но вы можете вместо этого использовать Key Bindings. Прочитайте [эту тему] (http://stackoverflow.com/questions/15290035/key-bindings-vs-key-listeners-in-java) для сравнения между ними и KeyListeners. – PakkuDon