Я работаю над базой для базовой интерактивной программы. В нем у меня есть класс InputHandler, который выполняется каждый раз, когда происходит событие keyPressed или keyReleased (указанное в основном классе). В InputHandler есть конструктор, который загружается в основной класс; однако я хочу, чтобы другие объекты (например, класс Player) могли иметь собственное поведение при нажатии клавиш. Есть ли способ иметь один массив или массив ArrayList, который содержит значения нажатых клавиш, которые могут быть загружены другим классом без инициализации нового экземпляра InputListener для каждого из них? Пожалуйста, дайте мне знать, если потребуется дополнительное разъяснение.Обработка входных данных централизованно в Java
Вот код для моего класса InputHandler:
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
public class InputListener {
private ArrayList<Integer> keysPressed = new ArrayList<Integer>();
int mouseXPos, mouseYPos;
public InputListener(){
}
public void keyPressed(KeyEvent e){
keysPressed.add(e.getKeyCode());
}
public void keyReleased(KeyEvent e){
}
public ArrayList<Integer> getKeysPressed(){
return keysPressed;
}
public void mousePressed(MouseEvent e){
mouseXPos = e.getX();
mouseYPos = e.getY();
}
public int getMouseXPos(){
return mouseXPos;
}
public int getMouseYPos(){
return mouseYPos;
}
}