Я пытаюсь написать Mouse
класс (реализующий MouseListener
и MouseMotionListener
), содержащий mousePressed()
и mouseMoved()
. Я хочу, чтобы можно было обнаружить движение мыши, пока мышь не работает. Я могу обнаружить каждый отдельно, но не в одно и то же время. Например:Регистрация MouseListener и MouseMotionListener одновременно
import javax.swing.*;
import java.awt.event.*;
public class Test extends JPanel {
public Test() {
Mouse m = new Mouse();
addMouseListener(m);
addMouseMotionListener(m);
}
class Mouse implements MouseListener, MouseMotionListener{
public void mousePressed(MouseEvent e) {
System.out.println("Pressed");
}
public void mouseMoved(MouseEvent e) {
System.out.println("Moved");
}
public void mouseDragged(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new Test());
frame.setVisible(true);
}
}
Как вы должны видеть, «прессованная» и «Перемещенные» оба распечатаны, но после того, как мыши нажата, «Перемещенные» не печатается, пока мышь не будет отпущена. Как бы я сделал это так, чтобы он это сделал?
Ничего себе, сейчас я чувствую себя немым. Благодаря! – RobotKarel314
@ RobotKarel314 Я писал код Java почти десять лет, и я все равно поднимаю соответствующие страницы API каждый раз, когда начинаю работать над чем-то новым. Научитесь любить документацию. Это удивительно легко читать и часто ссылается на примеры. – 1279343