首页 > 解决方案 > 我如何处理位于 JavaFX 中另一个按钮中的按钮单击?

问题描述

我刚刚制作了在按钮内有 HBox 的 Button。当我单击内部按钮时,也会单击外部按钮。我只想让一个按钮可以一次单击。我该如何处理这个按钮?

这是 JavaFX 控制器代码。

Button b = new Button();
Button front = new Button("Stop");
front.setPrefWidth(50);
front.setOnAction((e) -> {
    System.out.println("front click");
});
HBox h = new HBox();
h.getChildren().addAll(front);
b.setGraphic(h);

b.setOnAction((e) -> {
        System.out.println("back click");
});

当我运行此代码并单击前面的按钮时,结果是

front click
back click
front click
back click
front click
back click
front click
back click
front click
back click
front click
back click

当我单击前按钮时,也单击后按钮。我该如何处理?

标签: javafx

解决方案


Event Consume应该管用。

front.setOnAction((e) -> {
    System.out.println("front click");
    e.consume();
});

推荐阅读