在 JavaFX 中禁用按钮

Posted

技术标签:

【中文标题】在 JavaFX 中禁用按钮【英文标题】:Disabling a Button in JavaFX 【发布时间】:2013-07-26 03:09:46 【问题描述】:

在 Swing 中,我们可以像这样禁用按钮:

JButton start = new JButton("Start");
start.setEnabled(false);

有没有办法用 JavaFX 按钮做到这一点? 用户应该只能按一次按钮。

【问题讨论】:

【参考方案1】:

当然。只有相关的属性具有相反的语义,称为disabled。这意味着您可以使用setDisable(不是setDisabled)和isDisabled。由于它是一个 JavaFX 属性,您还可以将侦听器附加到 disabledProperty

查看http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#setDisable(boolean) 上的 JavaFX 文档

代码

button.setDisable(false)

【讨论】:

有两个属性,它们是不同的:disabledisableddisable 是一个可写属性,您可以使用 setDisable(...) 设置它。 disabled 是一个只读属性,如果 disable 为真,或者场景图中的父节点disabled 为真,则该属性为真。 (因此设置disable 将禁用该节点及其所有子节点。)【参考方案2】:

如果你想禁用按钮,你有两个选择,你可以

Button.setDisable(true);

或者如果你愿意,你也可以让它不可见

Button.setVisible(false);

【讨论】:

以上是关于在 JavaFX 中禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX:禁用键盘控制RadioButtons

如何在对话框中将事件侦听器绑定到JavaFX TextFields。当字段为空时,“确定”按钮将被禁用,反之亦然

为啥禁用舞台可调整大小在 javafx 中不起作用?

如何禁用 TextArea (JavaFX) 中的文本选择?

JavaFX:在进程运行时禁用所有组件并显示进度指示器

javafx - 根据布尔值绑定按钮