如何为 JavaFX 编写 MouseListener
How to write a MouseListener for JavaFX
我想写一个小游戏,在这个游戏中,我使用鼠标位置在 JavaFX 面板上从一个对象向特定方向移动。
我想在鼠标所在的方向转动一条线。
Line line = new Line(startPosX, startPosY, mouseDirectionX, mouseDirectionY);
我该怎么做?
像这样添加 MOUSE_MOVED 事件过滤器:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Pane root = new Pane();
Line line = new Line( 400,200,400,200);
root.addEventFilter(MouseEvent.MOUSE_MOVED, e -> {
line.setEndX(e.getSceneX());
line.setEndY(e.getSceneY());
});
root.getChildren().add(line);
Scene scene = new Scene(root, 800, 400);
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
如果你想限制线的长度,你当然必须通过角度进行适当的计算。
我想写一个小游戏,在这个游戏中,我使用鼠标位置在 JavaFX 面板上从一个对象向特定方向移动。
我想在鼠标所在的方向转动一条线。
Line line = new Line(startPosX, startPosY, mouseDirectionX, mouseDirectionY);
我该怎么做?
像这样添加 MOUSE_MOVED 事件过滤器:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Pane root = new Pane();
Line line = new Line( 400,200,400,200);
root.addEventFilter(MouseEvent.MOUSE_MOVED, e -> {
line.setEndX(e.getSceneX());
line.setEndY(e.getSceneY());
});
root.getChildren().add(line);
Scene scene = new Scene(root, 800, 400);
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
如果你想限制线的长度,你当然必须通过角度进行适当的计算。