[英]Value Change Listener for JavaFX's TextField
我想在我JavaFX's TextField
中添加一種listener
器,當用戶更改TextField
的值時,應用程序會在控制台上打印一些內容。
我進行了搜索,發現以下非常相似的問題: Value Change Listener to JTextField
提到的問題的答案非常明確和有效,但不幸的是它只對JTextField
(不是JavaFX's TextField
)有用,因為它說你應該像這樣使用 DocumentListener:
// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
warn();
}
public void removeUpdate(DocumentEvent e) {
warn();
}
public void insertUpdate(DocumentEvent e) {
warn();
}
但在 JavaFX 的 TextFields 中,您無法做到這一點。 所以? 解決辦法是什么?
(用代碼描述可能非常好,但如果不可能,任何提示將不勝感激)
為 TextField 的 textProperty 添加一個監聽器:
TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
System.out.println("textfield changed from " + oldValue + " to " + newValue);
});
您可以將 KEY_TYPED 的 EventFilter 添加到您的文本字段
public class YourClass extends BorderPane implements EventHandler<KeyEvent>
TextField rootFolder ;
public YourClass(ReportOptions rep) {
rootFolder = new TextField("example/path");
rootFolder.addEventFilter(KeyEvent.KEY_TYPED,this);
}
@Override
public void handle(KeyEvent event) {
//use or write to console :
String txt = ((TextField) event.getSource()).getText();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.