Swing到JavaFX - 相当于覆盖了一个按钮的isEnabled()方法?

时间:2014-09-03 16:55:45

标签: java swing javafx isenabled

在Swing中我们可以做类似

的事情
JButton button = new JButton("button") {
  public boolean isEnabled() {
    return ...condition...;
  }
};

因为JavaFX Button的isDisable()/ isDisabled()被声明为final - 有条件地启用或禁用JavaFX按钮的等价物是什么?

1 个答案:

答案 0 :(得分:1)

将您的情况表达为ObservableValue<Boolean>,并执行

button.disableProperty().bind(condition);

例如,如果要在文本字段为空时禁用该按钮,则可以执行

button.disableProperty().bind(Bindings.isEmpty(textField.textProperty()));

或者,如果您仍在使用JavaFX 2.2,

button.disableProperty().bind(new BooleanBinding() {
    { bind(textField.textProperty()); }
    @Override
    public boolean computeValue() {
        return textField.getText().isEmpty() ;
    }
});