Это моя первая попытка использования keylistener в Java, поэтому не будьте суровы на меня. Я пытаюсь использовать TimerListener и KeyListener в рамках одного и того же отдельного частного класса, чтобы дополнить основные действия в моем классе.Keylistener с таймером в одном классе.
public class GameMemory {
private int[][] grid = new int[24][12];
Figure figure = new Figure();
GameMemory() {
figure.figureReinitialize();
Timer timer = new Timer(1000, new TimerListener());
timer.start();
}
И частный класс
private class TimerListener implements ActionListener, KeyListener {
@Override
public void actionPerformed(ActionEvent e) {
figure.moveDown();
System.out.println(Arrays.deepToString(grid)); // To debug.
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
GameMemory.this.figure.rotateRight();
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
}
Я сделал обширные исследования и наблюдал несколько онлайна видео и читать оракул документацию по этой теме, но до сих пор не могу получить много смысла из него. В текущем состоянии код компилируется, и таймер работает так, как ожидалось, но я думаю, что где-то отсутствует инструкция ...
Я пробовал addKeyListener в конструкторе GameMemory, но он сказал, что не может найти символ.
Любые идеи?
Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –