sirve que para mouseexited mouseadapter eventos evento event java swing event-handling mouseevent mouse-listeners

que - Manejo de eventos Java-mouseMoved() en Swing



mouseadapter para que sirve (2)

¿Tal vez deberías intentar implementar MouseMotionListener y con MouseListener también?

Quiero escuchar los movimientos y clics del mouse en mi JFrame. Para hacer esto, he agregado un MouseListener implementado así: (el código completo de la clase View está en https://gist.github.com/2837224 , la clase Board está en https://gist.github.com/2837231 )

class BattleshipsFrame extends JFrame { private final Board playerBoard, opponentBoard; private View view; /** Main window constructor. */ BattleshipsFrame() { ... ... ... //creating and displaying boards playerBoard = new Board(); opponentBoard = new Board(); PlayerBoardListener mouseListener = new PlayerBoardListener(); this.addMouseListener(mouseListener); playerBoard.addMouseListener(mouseListener); opponentBoard.addMouseListener(new OpponentBoardListener()); boards.add(playerBoard); boards.add(opponentBoard); ... ... ... } /** Listener responsible for handling mouse events on player board */ private class PlayerBoardListener extends MouseAdapter { @Override public void mousePressed(MouseEvent event) { try { if(event.getButton() == MouseEvent.BUTTON1 && controllerConnection != null) controllerConnection.sendShipPlacedEvent(event.getX()/40, event.getY()/40, ShipType.EMPTY); } catch(Exception e) { e.printStackTrace(); } } @Override public void mouseMoved(MouseEvent event) { //TODO System.out.println("Mouse movement detected! Actual mouse position is: " + event.getX()+ "," + event.getY() + "."); } @Override public void mouseDragged(MouseEvent event) { //TODO System.out.println("Mouse movement detected! Actual mouse position is: " + event.getX()+ "," + event.getY() + "."); } }

Lo curioso es que mousePressed () funciona bien, pero los otros dos no (nada se muestra en la consola mientras se mueve el mouse). ¿Alguien podría decirme qué estoy haciendo mal? ¡Gracias por adelantado!


Si desea recibir mouseMoved y mouseDragged , también debe registrar su escucha como MouseMotionListener .

MouseAdapter adapter = ... JFrame frame = ... frame.addMouseListener(adapter); frame.addMouseMotionListener(adapter);