Ich habe 3 Felder:Wie ermittelt man, welches TextField EventHandler in JavaFX ausgelöst hat?
@FXML
private TextField name;
@FXML
private TextField lastName;
@FXML
private TextField phoneNumber;
ich für sie EventHandler
erstellt:
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();
}
};
Und als:
name.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
lastName.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
phoneNumber.addEventHandler(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, fieldChangeListener);
Wie kann ich feststellen, welche eine meiner drei Felder ausgelöst Veranstaltung? Ich möchte je verschiedene Funktionen aufrufen, auf dem einer von denen geändert wurde, wie: -
if(name){
function changedName();
}
else if(lastName){
function changedLastName();
}
else if(phoneNumber){
function changedPhoneNumber();
}
verwenden müssen, wäre es sinnvoller sein, 3-Handler anderen Ereignis zu verwenden, anstatt zu versuchen, die Logik für alle drei Felder in eine einzige Behandlungsroutine zu quetschen. Warum verwenden Sie auch keine Methode, um diese Ereignisse zu verarbeiten, und verwenden Sie das Attribut 'onInputMethodTextChanged' in der fxml, um den Handler zu registrieren? – fabian