【问题标题】:javafx - Bind button according to boolean valuejavafx - 根据布尔值绑定按钮
【发布时间】:2024-05-03 23:40:02
【问题描述】:

这里,我想根据布尔值来禁用和启用按钮。

boolean result=(txtItem.getText().isEmpty() && txtQty.getText().isEmpty());

btnOrder.disableProperty().bind(xxxxx);

我应该在那里输入什么??

【问题讨论】:

  • 你能提供更多细节吗?当result 计算的值变为真时,您希望禁用btnOrder?是 txtItemtxtQty 文本字段,还是类似的?

标签: button javafx boolean bind disabled-input


【解决方案1】:

如果我明白你在问什么(特别是假设 txtItemtxtQty 是某种 TextInputControl),你可以这样做

btnOrder.disableProperty().bind(Bindings.createBooleanBinding(
    () -> txtItem.getText().isEmpty() && txtQty.getText().isEmpty(),
    txtItem.textProperty(), txtQty.textProperty()));

btnOrder.disableProperty().bind(
    Bindings.length(txtItem.textProperty()).isEqualTo(0)
    .and(Bindings.length(txtQty.textProperty()).isEqualTo(0)));

【讨论】:

  • 如果我想检查值.. 假设 txtItem 的值小于 txtQty 的值,那么按钮必须启用
  • @kasun 只需将该条件包含在第一个版本的评估函数中即可。 (如果您要将文本转换为数值,那么我认为没有等效的第二个版本可以工作。)