【发布时间】:2016-02-07 14:47:17
【问题描述】:
我试图构建由区域(状态)组成的地图,当鼠标进入某个区域时,我需要处理它。有许多分别代表每个区域的 png 图像。我混合了我的图像并得到了我想要的,但是我无法处理某些区域。
例如:
这是第一个区域 img
代码:
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("view/MapView.fxml"));
Pane root = loader.load();
primaryStage.setTitle("Map");
primaryStage.setScene(new Scene(root, 700, 700));
primaryStage.show();
//First region
File file = new File("src/res/img/region1.png");
Canvas canvas = new Canvas(700, 700);
canvas.addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, event -> System.out.println("Region 1"));
GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
graphicsContext.drawImage(new Image(file.toURI().toString()), 0, 0);
root.getChildren().add(canvas);
//Second region
file = new File("src/res/img/region2.png");
canvas = new Canvas(700, 700);
canvas.addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, event -> System.out.println("Region 2"));
graphicsContext = canvas.getGraphicsContext2D();
graphicsContext.drawImage(new Image(file.toURI().toString()), 0, 0);
root.getChildren().add(canvas);
}
在控制台中,我总是得到“区域 2”。
请给我一些研究建议。提前致谢!
【问题讨论】:
-
您是否将两个画布添加到同一位置并希望它们能够知道您的鼠标应该在哪一个上?
-
khelwood,我知道,但是如果我将它添加到不同的位置,如何正确混合这些图像?