我正在创建一个Java应用程序,我需要让每一帧都相对于我的Jframe的鼠标位置。 我正在编写一个从MouseAdapter扩展的类,但在需要时我无法访问MouseEvent。
感谢。
答案 0 :(得分:1)
使用Swing Timer: 打印到JFrame左上边缘的相对距离。
public static void main(String[] args) {
JFrame frame = new JFrame("Frame");
frame.setSize(500, 500);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
Timer timer = new Timer(66, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Point p = MouseInfo.getPointerInfo().getLocation();
p = new Point(p.x - frame.getLocation().x, p.y - frame.getLocation().y);
System.out.println("Mouse: " + p);
}
});
timer.start();
}