从javafx.scene.Node
继承时,有两种方法可用于调用:(我正在展示当前的8u66 Oracle实现)
setDisable(boolean)
public final void setDisable(boolean value) {
disableProperty().set(value);
}
setDisabled(boolean)
protected final void setDisabled(boolean value) {
disabledPropertyImpl().set(value);
}
从javafx.scene.Node
继承时,我应该拨打哪一个?
答案 0 :(得分:9)
这取决于上下文,但你几乎肯定想要调用setDisable(...)
。
在JavaFX中,节点呈现为已禁用,如果其disable
属性为true
,或者disable
属性为真,则忽略任何用户输入场景图中的祖先。 disabled
属性是节点客户端的只读属性,它反映了这种整体状态:即disabled
为真,当且仅当disable
对于此节点为真或者为它的任何祖先(容器)节点。
因此,要禁用节点,通常应调用setDisable(true);
。在Node
的自定义子类中,您只应调用setDisabled(true);
来强制执行上述规则。请注意,超类实现已经强制执行此规则,因此除非您正在执行非常复杂的操作(我甚至不能真正看到用例),否则您无需调用setDisabled(...)
。
答案 1 :(得分:3)
您想使用
setDisable
,而不是setDisabled
。setDisable
是一个 用于停用节点的public
方法setDisabled
为protected
仅由内部实现使用的方法。
用户this comment从@jewelsea引用。