小编geh*_*geh的帖子

如果后面还有另一个窗口,则透明的JavaFX阶段捕获滚动事件

鼠标事件和滚动事件的行为方式不同

图

鼠标事件:

  1. 该事件由mainStage捕获

  2. 该事件由mainStage捕获

  3. 未捕获事件

滚动事件:

  1. 该事件由mainStage捕获

  2. 该事件由secondStage捕获

  3. 未捕获事件

透明的secondStage有什么方法不能捕获滚动事件?

我的代码:

Pane mainPane = new Pane(new Label("Main Stage"));
mainPane.setPrefSize(300, 300);
mainStage.setScene(new Scene(mainPane));

Stage secondStage = new Stage();
Pane secondPane = new Pane(new Label("Second Stage"));
secondPane.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY)));
secondPane.setBorder(new Border(
    new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(2))));
secondPane.setPrefSize(300, 300);
secondStage.setScene(new Scene(secondPane, Color.TRANSPARENT));
secondStage.initStyle(StageStyle.TRANSPARENT);

mainStage.getScene().setOnScroll(event -> System.out.println("Scroll in main stage"));
secondStage.getScene().setOnScroll(event -> System.out.println("Scroll in second stage"));
mainStage.getScene().setOnMouseClicked(event -> System.out.println("Click in main stage"));
secondStage.getScene().setOnMouseClicked(event -> System.out.println("Click in second …
Run Code Online (Sandbox Code Playgroud)

java javafx openjfx

8
推荐指数
1
解决办法
124
查看次数

标签 统计

java ×1

javafx ×1

openjfx ×1