javafx - JavaFX8:用于 textproperty 内容的 BooleanBinding disabledProperty 不起作用
问题描述
我试图为节点的禁用属性创建布尔绑定。如果 textProperty 值确实以定义的字符串结尾,则应启用节点:
myheckbox.disabledProperty().bind(Bindings.createBooleanBinding(()
-> myLabel.getText().endsWith(".txt"), myLabel.textProperty()));
由于以下原因无法编译:对于 ReadOnlyBooleanProperty 类型的方法 bind(BooleanBinding) 未定义
我该如何绑定这个?该复选框最初是禁用的,如果标签包含以“.txt”结尾的文件名,则应启用该复选框
解决方案
您正在尝试绑定错误的属性。有两个与节点的禁用状态相关的属性:
Node#disabled
(只读)指示这是否
Node
被禁用。如果在场景图中将其自身或其祖先之一设置为 true,则ANode
将被禁用。disable
Node#disable
(读写)定义 this 的单个禁用状态
Node
。设置disable
为 true 将导致这个Node
和任何子节点被禁用。此属性应仅用于设置 a 的禁用状态Node
。为了查询 a 的禁用状态,应该使用Node
该属性,因为即使其上的单个状态为 false ,a 也可能由于祖先被禁用而被禁用。disabled
Node
disable
Node
您需要绑定后一个属性。
myheckbox.disableProperty().bind(Bindings.createBooleanBinding(()
-> myLabel.getText().endsWith(".txt"), myLabel.textProperty()));
推荐阅读
- dpdk - 如何修复 DPDK 大型内存池的分段错误?
- mongodb - 无法通过 .NET mongoDB 驱动程序创建分片集合
- square-connect - 退款发票API支持按平方
- javascript - 反应原生 rsa-pss 密码学?
- flutter - 使用流中的项目数来控制添加新项目的能力
- django - .env 变量在使用 Docker 运行的 Django 项目的 settings.py 文件中不可见
- ios - Primary/Master - 具有多个级别的表视图
- python - 用 dash.testing 测试 dcc.upload
- html - iOS 在选择较低分辨率时旋转图像(HTML5 输入文件)
- snowflake-cloud-data-platform - 字符串“abcdfghrdfthgywdcgrt”太长,将被截断