SOLVED : I JUST ADDED requestFocusInWindow(). IF YOU HAVE A THREAD, WRITE IT INSIDE IT, OTHERWISE WON’T WORK, NOT IN MY CASE.
Although I added a MouseListener and a MouseMotionListener I am not capable of adding the KeyListener properly. Here is the listeners-adding part:
public MyGame() {
//super ( new BorderLayout() );
a = new SoldierManager();
d = new SoldierManager();
setListeners();
newGame();
}
// --- LISTENERS ---
private class ListenersController{ // New class MouseController
private MouseMotion mouseMotion;
private Mouse mouse;
private Key key;
public ListenersController(){
mouseMotion = new MouseMotion();
mouse = new Mouse();
key = new Key();
}
private class MouseMotion extends MouseMotionAdapter{ // New class MouseMotion
public void mouseDragged(MouseEvent me) {
mousePosition = me.getPoint();
mousePressed = true;
}
public void mouseMoved(MouseEvent me) {
mousePosition = me.getPoint();
}
}
private class Mouse extends MouseAdapter{ // New class Mouse
public void mousePressed (MouseEvent me){
mousePressed = true;
}
public void mouseReleased (MouseEvent me){
mousePressed = false;;
}
}
private class Key extends KeyAdapter { // New class Key
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed");
}
public void keyReleased(KeyEvent e) {
JOptionPane.showMessageDialog(null, "Hi");
}
public void keyTyped(KeyEvent e) {
}
}
public MouseMotionAdapter getMouseMotionAdapter(){ // Getters and Setters
return mouseMotion;
}
public MouseAdapter getMouseAdapter(){
return mouse;
}
public KeyAdapter getKeyAdapter(){
return key;
}
}
private void setListeners() {
ListenersController mc = new ListenersController();
// Mouse Related Listeners
addMouseListener(mc.getMouseAdapter());
addMouseMotionListener(mc.getMouseMotionAdapter());
// KeyBoard Related Listener
addKeyListener(mc.getKeyAdapter());
}