当前位置: 首页 > 知识库问答 >
问题:

Node.setDisable() vs setDisabled() in JavaFX

欧阳德运
2023-03-14

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继承时应该调用哪个?

共有2个答案

龙德润
2023-03-14

您想使用<code>设置禁用</code>,而不是<code>设禁用</code>setDisable是一种禁用节点的公共方法setDisabled,是一种仅由内部实现使用的受protected方法。

引自用户@jewelsea的这条评论。

江俊能
2023-03-14

这有点取决于上下文,但您几乎肯定想调用setDisable(...)

在JavaFX中,如果节点的disable属性为true,或者如果disable属性对于场景图中的任何祖先都为真,则节点被渲染为禁用并忽略任何用户输入。禁用属性是节点客户端的只读属性,反映了这种整体状态:即禁用为真当且仅当disable为真时此节点或其任何祖先(容器)节点。

所以要禁用一个节点,通常应该调用< code > setDisable(true);。在< code>Node的自定义子类中,应该只调用< code > set disabled(true);来实施上述规则。请注意,超类实现已经实施了这条规则,所以除非您正在做非常复杂的事情(我甚至看不到用例),否则您不需要调用< code>setDisabled(...)。

 类似资料:

相关问答

相关文章

相关阅读