我有3個領域:如何確定哪個TextField觸發了JavaFX中的EventHandler?
@FXML
private TextField name;
@FXML
private TextField lastName;
@FXML
private TextField phoneNumber;
我爲他們EventHandler
創建:
EventHandler<InputEvent> fieldChangeListener = new EventHandler<InputEvent>() {
public void handle(InputEvent event) {
String input = ((TextField) event.getSource()).getText();
System.out.println("Changed: "+event.getSource());
event.consume();
}
};
,並分配給他們:
name.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
lastName.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
phoneNumber.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
我如何確定哪些我的3個領域之一觸發事件? 我想打電話給根據不同的功能上的一個改變,如: -
if(name){
function changedName();
}
else if(lastName){
function changedLastName();
}
else if(phoneNumber){
function changedPhoneNumber();
}
這將是更適合使用,而不是試圖爲所有3場的邏輯擠進一個單一的處理3個不同的事件處理程序。此外,爲什麼不使用方法來處理這些事件,並使用fxml中的'onInputMethodTextChanged'屬性來註冊處理程序? – fabian