Javafx 2 与ChangeListener等效的FXML属性?
我正在将JavaFX应用程序从用Java代码声明/配置其控件转换为将布局拆分为FXML配置。我遇到的问题是,我无法找到代码的ChangeListener的等效属性(?) 在原始Java代码中,我有Javafx 2 与ChangeListener等效的FXML属性?,javafx-2,Javafx 2,我正在将JavaFX应用程序从用Java代码声明/配置其控件转换为将布局拆分为FXML配置。我遇到的问题是,我无法找到代码的ChangeListener的等效属性(?) 在原始Java代码中,我有 class TextFieldChangeListener implements ChangeListener<String> { private boolean isRequiredDataPresent() { return outpu
class TextFieldChangeListener implements ChangeListener<String> {
private boolean isRequiredDataPresent() {
return outputNameTextField.getText().length() > 0 && numOfOutputFilesTextField.getText().length() > 0;
}
@Override
public void changed( ObservableValue<? extends String> observableValue, String s, String s2 ) {
mergeButton.setDisable( ! isRequiredDataPresent() );
}
}
类TextFieldChangeListener实现ChangeListener{
私有布尔值IsRequestDataPresent(){
返回outputNameTextField.getText().length()>0&&numOfOutputFilesTextField.getText().length()>0;
}
@凌驾
public void changed(observevalue您不能这样做,因为value属性是TextField的一个子部分。因此您必须在代码中编写它。FXML仅用于图形方面。
有关FXML的更多信息:
我想我只是对为什么我可以在FXML中添加onKeyPressed事件而不是onChange事件感到困惑。似乎我应该能够同时做这两件事,或者两者都不做。这只是因为更改侦听器不仅是一个函数,而且是属性上的侦听器。这是Java FX的思维方式。@PhilippeGeek Java FX的问题在于它是di版本。您可以在FXML中使用onAction侦听复选框的更改事件(尽管onAction也是一个属性)。但是,您不能对微调器、文本区域和许多其他对象执行相同的操作。我希望有一个通用的超类型“Field”对于所有携带值的组件,这个超级类型应该有一个setOnValueChange方法和一个value属性.yesp.defect。WPF XAML比FXML更高级
<TextField id="outputNameTextField" onKeyPressed="#textBoxOnChange" promptText="Path of merge file" GridPane.columnIndex="1" GridPane.rowIndex="3" GridPane.columnSpan="2" GridPane.rowSpan="1" />