Sie wollen anhängen drucken drucken möchten ein ChangeListener in die FocusProperty des TextFields, das Sie überwachen möchten.
In JavaFX können Sie Benachrichtigungsereignisse (Change- oder Invalidation-Listener) an jede JavaFX-Eigenschaft anhängen, die ein Objekt besitzen kann, solange die Eigenschaft die Mindestdefinition für eine JavaFX-Bean erfüllt.
zu diesem Beitrag finden Sie, wenn Sie Ihre Event-Handler Abbrechen oder Schaltfläche Standard-Einstellungen zu tun andere Dinge werden wie ändern: JavaFX 2 -- Setting the defaultButton property: mutually exclusive?
Hier ist ein Code Änderungs Listener zu einem Textfeld zu befestigen:
txtDx.focusedProperty().addListener(m_txtDxListener);
Das Listener-Objekt wurde in einem Instanzfeld gespeichert, sodass es sowohl mit addListener() als auch mit removeListener() verwendet werden kann. Für ein kurzlebiges TextField können Sie das Listener-Objekt mit einer anonymen inneren Klasse angeben.
Hier ist die private Klasse, die ich für meinen Fokus Zuhörer schrieb:
private class FocusPropertyChangeListener implements ChangeListener<Boolean> {
FocusPropertyChangeListener() { System.out.println("New FPCL instance"); }
@Override
public void changed(ObservableValue<? extends Boolean> ov,
Boolean oldb, Boolean newb) {
System.out.println("Focus change triggered");
if (ancEncEditor.isVisible() && !ancEncEditor.isDisabled()) {
boolean b = (newb != null && newb.booleanValue() == true);
System.out.println("txtDx focus change event triggered: DxAdd = " + b);
if (b) { btnDxAdd.setDefaultButton(true); }
else { btnWindowCommit.setDefaultButton(true); }
btnWindowCommit.setCancelButton(true);
btnDxAdd.setDefaultButton(b);
}
}
}
Führt dies vor oder nach dem eigentlichen Fokuswechsel aus? –
Es ist erwähnenswert, dass 'changed' immer noch aufgerufen wird, auch wenn die Anwendung geschlossen ist, während 'yourTextField' den Fokus hat. Das war sehr unerwünscht für mich, und ich habe es geschafft, indem ich etwas in der Art von 'primaryStage.setOnCloseRequest (event -> { removeListeners(); });' – Jake