Как получить х и у, где пользователь нажал на Java FX - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь создать приложение, в котором пользователь нажимает на экран, и мы добавляем круг с номером внутри круга, в котором пользователь щелкнул.

Я хочу, чтобы мое приложение работало: если я нажимаю на экран, появляется всплывающее окно с просьбой ввести число. Когда они нажимают OK, на экран, где пользователь последний раз щелкнул, добавляется круг с номером внутри круга.

В данный момент у меня работает всплывающее окно, и когда пользователь нажимает кнопку ОК, на экран добавляется круг, но он не добавляется там, где пользователь последний раз щелкнул. Я не уверен, как добавить круг, где пользователь последний раз щелкнул. Как бы я это сделал?

1 Ответ

0 голосов
/ 04 ноября 2018

Как указал Слав в своем комментарии, вы можете получить координаты X / Y щелчка мыши из MouseEvent.

Итак, создайте метод onMouseClicked() для любого узла, на котором вы позволяете пользователю щелкнуть.

Следующий MCVE будет демонстрировать, распечатывая координаты X / Y всякий раз, когда вы щелкаете по корневому VBox контейнеру:

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        // Simple interface
        VBox root = new VBox(5);
        root.setPadding(new Insets(10));
        root.setAlignment(Pos.CENTER);

        // Add a listener to catch MouseEvents when clicking on the root VBox
        root.setOnMouseClicked(mouseEvent -> {
            System.out.println("X: " + mouseEvent.getX());
            System.out.println("Y: " + mouseEvent.getY());
        });

        // Show the Stage
        primaryStage.setWidth(300);
        primaryStage.setHeight(300);
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...