Atualizar os valores do mouse em uma classe MouseInputListener

Ola. Não estou conseguindo atualizar os valores do mouse em uma classe MouseInputListener. A princípio pensei que pelos métodos serem @Override iriam atualizar os valores, mas não atualizou. Em seguida, pensei em chamá-los manualmente no método run, mas não sei como fazê-lo (por conta do event) e não creio que seja a solução correta. A chamada à classe é feita da seguinte maneira:

System.out.println(InputManager.getInstance().getMousePos().x);

O resultado é sempre 0.
Vale ressaltar que os valores referentes ao teclado estão corretos.
Segue a classe:

[code]import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.event.MouseInputListener;

public class InputManager implements KeyListener, MouseInputListener {
static protected int KEY_RELEASED = 0;
static protected int KEY_JUST_PRESSED = 1;
static protected int KEY_PRESSED = 2;
static private InputManager instance;
private HashMap<Integer, Integer> keyCache;
private ArrayList pressedKeys;
private ArrayList releasedKeys;
private boolean mouseButton1;
private boolean mouseButton2;
private Point mousePos;

private InputManager() {
    keyCache = new HashMap<Integer, Integer>();
    pressedKeys = new ArrayList<Integer>();
    releasedKeys = new ArrayList<Integer>();
    mousePos = new Point();
}

static public InputManager getInstance() {
    if (instance == null) {
        instance = new InputManager();
    }
    return instance;
}

public boolean isPressed(int keyId) {
    return keyCache.containsKey(keyId) && !keyCache.get(keyId).equals(KEY_RELEASED);
}

public boolean isJustPressed(int keyId) {
    return keyCache.containsKey(keyId) && keyCache.get(keyId).equals(KEY_JUST_PRESSED);
}

public boolean isReleased(int keyId) {
    return !keyCache.containsKey(keyId) || keyCache.get(keyId).equals(KEY_RELEASED);
}

public void update() {
    for (Integer keyCode : keyCache.keySet()) {
        if (isJustPressed(keyCode)) {
            keyCache.put(keyCode, KEY_PRESSED);
        }
    }
    for (Integer keyCode : releasedKeys) {
        keyCache.put(keyCode, KEY_RELEASED);
    }
    for (Integer keyCode : pressedKeys) {
        if (isReleased(keyCode)) {
            keyCache.put(keyCode, KEY_JUST_PRESSED);
        }
        else {
            keyCache.put(keyCode, KEY_PRESSED);
        }
    }
    pressedKeys.clear();
    releasedKeys.clear();
}

public void keyTyped(KeyEvent e) {
}

public void keyPressed(KeyEvent e) {
    pressedKeys.add(e.getKeyCode());
}

public void keyReleased(KeyEvent e) {
    releasedKeys.add(e.getKeyCode());
}

public boolean isMousePressed(int buttonId) {
    if (buttonId == MouseEvent.BUTTON1) {
        return mouseButton1;
    }
    if (buttonId == MouseEvent.BUTTON2) {
        return mouseButton2;
    }
    return false;
}

public int getMouseX() {
    return (int) mousePos.getX();
}

public int getMouseY() {
    return (int) mousePos.getY();
}

public Point getMousePos() {
    return mousePos;
}

@Override
public void mouseClicked(MouseEvent e) {
}

@Override
public void mousePressed(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1) {
        mouseButton1 = true;
    }
    if (e.getButton() == MouseEvent.BUTTON2) {
        mouseButton2 = true;
    }
}

@Override
public void mouseReleased(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1) {
        mouseButton1 = false;
    }
    if (e.getButton() == MouseEvent.BUTTON2) {
        mouseButton2 = false;
    }
}

@Override
public void mouseEntered(MouseEvent e) {
}

@Override
public void mouseExited(MouseEvent e) {
}

@Override
public void mouseDragged(MouseEvent e) {
}

@Override
public void mouseMoved(MouseEvent e) {
    mousePos.setLocation(e.getPoint());
}

}[/code]

Grato.

Este tópico está duplicado. Ocorreu um erro quando o criei a primeira vez e por isso o fiz novamente. Se alguem puder deletá-lo, agradeço.

Manda uma mensagem para algum moderador, administrador ou então para guj@guj.com.br
e pede para retirarem o tópico duplicado.

Não esquece de por RESOLVIDO na frente do teu título quando o problema for resolvido.