我有一个主舞台,其中有一个场景,该场景包含四个SubScene。我想获取鼠标单击的局部于所单击的场景的坐标。我知道在哪个场景上单击了鼠标,因为所有场景都有各自的事件侦听器,但是我得到的坐标是(场景)主场景的。如何将坐标转换为局部到场景。
提前致谢。
最佳答案
将侦听器添加到各个子场景对我来说很好:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.SubScene;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class SubSceneClickTest extends Application {
@Override
public void start(Stage primaryStage) {
GridPane root = new GridPane();
for (int i = 0 ; i < 4 ; i++) {
SubScene subScene = new SubScene(new StackPane(), 300, 300);
subScene.setFill((i + i / 2) % 2 == 0 ? Color.CORNFLOWERBLUE : Color.AQUA);
String message = "Click on subscene "+i;
subScene.setOnMouseClicked(e -> System.out.printf("%s [%.1f, %.1f]%n", message, e.getX(), e.getY()));
root.add(subScene, i / 2, i % 2);
}
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
关于java - 如何在JavaFx 8中将鼠标坐标转换为本地到SubScene,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43140229/