如何使圆形按钮之外的区域在 javafx 中不可点击

Cai*_*dus 2 javafx

当我像这样制作圆形按钮时

Button b = new Button();
b.setShape(new Circle(20.0));
b.setText("BUTTON");
b.setStyle("-fx-background-radius: 50em; " +
           "-fx-min-width: 50px; " +
           "-fx-min-height: 50px; ");
Run Code Online (Sandbox Code Playgroud)

它仍然可以在圆圈外的区域中单击,就像我在这里标记为红色的那个:

在此处输入图片说明

有没有办法来解决这个问题?

Ham*_*Ali 5

Button 具有pickOnBounds属性,定义在由 MouseEvent 或 contains 函数调用触发时如何为此节点完成拾取计算。
您需要将pickOnBounds属性设置为false

pickOnBounds 似乎无法从 CSS 中设置,这意味着您需要从代码中进行设置

b.pickOnBoundsProperty().setValue(false);

  • 使用“b.setPickOnBounds(false)”会更惯用。 (2认同)