Ich habe zwei JFormattedTextField
Objekte auf meinem JFrame
Objekt. Ich möchte eine grundlegende Mathematik (Addition) durch die Werte dieser JFormattedTextField
-Objekte. Ich will, dass es passiert, wenn der Fokus entweder das erste oder das zweite Textfeld verloren hat. Aber wenn " focusLost()
", Ereignis nicht den letzten Wert erhält, erhält es den vorherigen Wert.
Zum Beispiel; tf1
hat 0 und tf2
hat zuerst 0. Ich schreibe 2 bis tf1
, und wenn focusLost()
, Ergebnis ( tf1+tf2
) wird immer noch 0. Wenn ich eine von ihnen ändere, wird das Ergebnis 2 (der vorherige Wert)
Wie bekomme ich die letzten Werte von focusLost?
Hier ist mein Code:
%Vor% und focusLost()
:
Ich denke, Sie sollten PropertyChangeListener
verwenden, siehe So schreiben Sie einen Listener zum Ändern von Eigenschaften .
Es gibt ein Beispiel mit JFormattedTextField
:
Das Standardverhalten von JFormattedTextField
für focusLost
Ist COMMIT_OR_REVERT
, so ist ein Ansatz, das Update nach durchzuführen, den der Fokus-Listener abgeschlossen hat. Eine Fortsetzung funktioniert gut, wie unten gezeigt.
Tags und Links java swing focus jframe jformattedtextfield