Benutzereingaben sofort erkennen

Status
Nicht offen für weitere Antworten.

weasel76

Mitglied
Hallo!

Ich möchte in einer Eingabemaske, die aus mehreren JTextField's, JComboBoxen und JListen besteht gerne feststellen, ob der Benutzer bereits eine Eingabe gemacht hat oder nicht. Dabei hab ich mir das so vorgestellt, daß in der Statusleiste angezeigt wird, ob die Eingaben geändert wurden und der Benutzer nur dann gefragt wird. ob er die Änderungen speichern will, wenn er auch wirklich Daten in der Maske geändert hat.

Leider finde ich keine einfache Lösung für das Problem (so was wie eine textfield.hasChanged() Methode scheint es ja nicht zu geben?). Ich kann mir nur vorstellen, alle Daten vor dem Öffnen der Eingabemaske zu sichern und dann immer z.B. mit einem FocusListener jedesmal beim Verlassen z.B. des Textfeldes den alten Text mit dem neuen zu vergleichen.
Das ist aber wieder sehr umständlich, da die Eingabemaske aus mehreren verschiedenen Widgets (JTextField, JComboBox, JList, JCheckBox, ...) besteht.

Vielleicht kann mir ja jemand einen Tip geben wie ich das "elegant" lösen kann!
 

weasel76

Mitglied
dyrathror hat gesagt.:
Wie wäre es mit einem PropertyChangeListener ?

Für z.B. ein JTextField? Gibt es da ein Property das beim Ändern des Textes gesetzt wird?

Ich könnte mir auch einen PropertyChangeListener für den KeyboardManager vorstellen, der immer beim Focus-Wechsel aufgerufen wird, allerdings habe ich dann wieder das gleiche Problem, daß ich bei jedem Focus-Wechsel den Inhalt der einzelnen Widgets auf Änderungen überprüfen muß... :?
 
R

Roar

Gast
da gibt es für jede komponente ihren listenmer. für textfelder: DocumentListener for comboboxen: ItemListener für checkboxen actionlistener.

ich würd einfach die daten vor dem darstellen speichern und mit den daten beim beenden des dialogs vergleochen
 

Sky

Top Contributor
Roar hat gesagt.:
ich würd einfach die daten vor dem darstellen speichern und mit den daten beim beenden des dialogs vergleochen

Dito. Wenn Du nämlich einen Listener verwenden würdest und in einem Textfeld aus "Hase" einen "Franz" machst und sogleich wieder einen "Hase" draus machst, würde dein Programm behaupten es hätte sich was geändert...
 

weasel76

Mitglied
sky80 hat gesagt.:
Roar hat gesagt.:
ich würd einfach die daten vor dem darstellen speichern und mit den daten beim beenden des dialogs vergleochen

Dito. Wenn Du nämlich einen Listener verwenden würdest und in einem Textfeld aus "Hase" einen "Franz" machst und sogleich wieder einen "Hase" draus machst, würde dein Programm behaupten es hätte sich was geändert...

Das wär mir eigentlich egal. Ich hab da einfach an z.B. ein kleines Sternchen in der Statusleiste gedacht, das angezeigt werden soll, wenn der Benutzer ein Feld ändert, also so wie es z.B. in vielen Texteditoren üblich ist. Nur hatte ich mir nicht gedacht daß das so aufwändig ist!

Es wird mir wahrscheinlich nichts anderes Übrig beleiben, als z.B. beim Focus-Wechsel die Felder mit den ursprünglichen Werten zu vergleichen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Benutzereingaben an aufrufende Klasse zurückgeben AWT, Swing, JavaFX & SWT 2
G JTextArea fuer Benutzereingaben sperren AWT, Swing, JavaFX & SWT 2
F Swing JLabel wird nicht sofort Angezeigt AWT, Swing, JavaFX & SWT 3
E JButton wird nicht (sofort) angezeigt AWT, Swing, JavaFX & SWT 3
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
E Swing Zur Laufzeit hinzegfügte Komponenten nicht sofort sichtbar?! AWT, Swing, JavaFX & SWT 4
T Fenster wird trotz repaint() und revalidate() nicht sofort neu gezeichnet AWT, Swing, JavaFX & SWT 6
K jTextArea Text sofort setzen: Statusbox für Programmablauf AWT, Swing, JavaFX & SWT 5
O JTree Node sofort editieren AWT, Swing, JavaFX & SWT 2
K jframe schließt sich sofort AWT, Swing, JavaFX & SWT 3
J jTable Daten werden nicht sofort sichtbar AWT, Swing, JavaFX & SWT 5
M JTable: TableCellEditor nach Eingabe sofort beenden? AWT, Swing, JavaFX & SWT 3
G JList Neuen Eintrag sofort anzeigen AWT, Swing, JavaFX & SWT 10
Icewind Jlist zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
Icewind JTable zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
R JFrame verschwindet sofort hiner dem Hauptframe AWT, Swing, JavaFX & SWT 9
H Hintergrundbild im Panel verschwindet sofort AWT, Swing, JavaFX & SWT 6
S Swing: Änderungen in JLabel oder JTextField sofort anzeigen AWT, Swing, JavaFX & SWT 3
H JavaFX Fenstergröße nach maximieren erkennen AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
M Gezeichnetes Dreieck mit HoughLines erkennen AWT, Swing, JavaFX & SWT 9
J splitpane - Wechseln auf anderen Split erkennen AWT, Swing, JavaFX & SWT 11
E Grafik karte erkennen AWT, Swing, JavaFX & SWT 3
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
B Größer-/Kleinerziehen eines JFrames/JPanels erkennen AWT, Swing, JavaFX & SWT 2
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
H Puzzle - Erkennen wenn gelöst (array vergleichen) AWT, Swing, JavaFX & SWT 10
P Pixelfarbe erkennen - funktioniert nicht AWT, Swing, JavaFX & SWT 8
G JFileChooser - erkennen v. existierenden Dateien ohne Endung AWT, Swing, JavaFX & SWT 1
I Choice erkennen AWT, Swing, JavaFX & SWT 3
F JFrame Änderung der Größe erkennen AWT, Swing, JavaFX & SWT 2
T erkennen ob innerhalb oder außerhalb von canvas gezeichnet AWT, Swing, JavaFX & SWT 2
G JList Schrift ist schwer zu erkennen AWT, Swing, JavaFX & SWT 5
R Klick in einem Tree erkennen und auswerten AWT, Swing, JavaFX & SWT 6
L Komponenten dynamisch erkennen und bearbeiten AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen


Oben