从javafx.scene.Node
继承时,有两种方法可用于调用:(我正在展示当前的8u66 Oracle实现)
setDisable(boolean)
public final void setDisable(boolean value) {
disableProperty().set(value);
}
设置禁用(布尔)
protected final void setDisabled(boolean value) {
disabledPropertyImpl().set(value);
}
从javafx.scene.Node
继承时应该调用哪个?
您想使用<code>设置禁用</code>,而不是<code>设禁用</code>setDisable
是一种禁用节点的公共
方法,setDisabled
,是一种仅由内部实现使用的受protected
方法。
引自用户@jewelsea的这条评论。
这有点取决于上下文,但您几乎肯定想调用setDisable(...)
。
在JavaFX中,如果节点的disable
属性为true
,或者如果disable
属性对于场景图中的任何祖先都为真,则节点被渲染为禁用并忽略任何用户输入。禁用
属性是节点客户端的只读属性,反映了这种整体状态:即禁用
为真当且仅当disable
为真时此节点或其任何祖先(容器)节点。
所以要禁用一个节点,通常应该调用< code > setDisable(true);。在< code>Node的自定义子类中,应该只调用< code > set disabled(true);来实施上述规则。请注意,超类实现已经实施了这条规则,所以除非您正在做非常复杂的事情(我甚至看不到用例),否则您不需要调用< code>setDisabled(...)。