我在FXML文档中设计了一个表单。我可以处理按键与事件。但我需要文本更改事件。我正在使用Netbeans 7.3。项目中有三个文件:SampleControler,Sample.FXML和Sample.java。我找到了一个代码,但我还没有解决使用它的问题。
input.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue ov, String t, String t1) {
System.out.println("Changed.");
}
});
我的TextArea代码是:
<TextArea layoutX="10" layoutY="50" maxHeight="125" minHeight="125" maxWidth="570" minWidth="570" editable="true" fx:id="input" prefWidth="570" prefHeight="125" />
我该怎么办?
答案 0 :(得分:10)
在与您的fxml相关联的控制器中,获取TextArea,您可以这样做:
yourTextArea.textproperty()。addListener ...
public class Example implements Initializable {
@FXML
private TextArea textArea;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
textArea.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observableValue, String s, String s2) {
}
});
}
}
控制器上的varibale名称需要与fxml中的fx:id具有相同的名称