相关疑难解决方法(0)

在底层图层上忽略鼠标事件

我有两层(= AnchorPanes)堆叠其中一个与StackPane.所以这两个层都填满整个场景.问题是,只有顶层接收鼠标事件.

多数民众赞成如何建立场景:

场景的布局

只有按钮B接收点击事件,但按钮A没有.

按钮A不接收单击事件

如果我将图层B设置为鼠标透明(layerB.setMouseTransparent(true)),则按钮A会接收鼠标事件.但鼠标透明效果也是所有孩子,因此Button B不再接收鼠标事件.

如何让按钮A和按钮B接收鼠标事件?

以下是完整的工作来源:

public class LayerTest extends Application {
    @Override
    public void start(final Stage primaryStage) throws Exception {
        final Node layerA = createLayerA();
        final Node layerB = createLayerB();
        final Parent root = new StackPane(layerA, layerB);
        final Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setWidth(250);
        primaryStage.setHeight(200);
        primaryStage.show();
    }

    private Node createLayerA() {
        final AnchorPane layerA = new AnchorPane();
        final Button buttonA = new Button("Button A");
        AnchorPane.setLeftAnchor(buttonA, 10d);
        AnchorPane.setTopAnchor(buttonA, 10d);
        buttonA.setOnMouseClicked(e -> System.out.println("Button A clicked"));
        layerA.getChildren().setAll(buttonA); …
Run Code Online (Sandbox Code Playgroud)

javafx

32
推荐指数
1
解决办法
8374
查看次数

标签 统计

javafx ×1