Werte aus dem GUI Auslesen

gebrumml

Mitglied
Guten Abend miteinander

Ich blicke momentan nicht durch, wie ein Wert, welcher in ein TextField im GUI, ausgelesen und gespeichert werden soll. Das GUI wurde mit dem Scene Builder erstellt und in der Controller Klasse die Textfelder mit der @FXML Annotation versehen (Bsp: @FXML private TextField nameField😉.

Wie ist die Vorgehensweise bzw. wie kann man die Werte vor allem ansprechen und in welcher Klasse soll das Programmiert werden?

Die im GUI eingegebenen Werte sollten dann schlussendlich in eine Datenbank gespeichert werden, das ist jedoch eine andere Geschichte. 😉

Denke die Antwort ist recht simpel, jedoch sehe ich momentan die Verbindung noch nicht...

Danke für Hilfe!
 
Wie ist die Vorgehensweise bzw. wie kann man die Werte vor allem ansprechen...
Siehe vorherige Posts.

...und in welcher Klasse soll das Programmiert werden?
Der Controller ist die direkte Schnittstelle zu deiner in der FXML definierten GUI. Alle Reaktionen/Arbeiten auf Controls des FXML sollten entsprechend in diesem Controller behandelt werden.

Die im GUI eingegebenen Werte sollten dann schlussendlich in eine Datenbank gespeichert werden, das ist jedoch eine andere Geschichte. 😉
Dies sollte idealerweise in einer anderen Klasse gemacht werden. Das Buzzword dazu lautet "MVC" (kann man auch noch mit "MVVM" steigern, aber bleiben wir erst mal bei "MVC"). Das heisst, diesen Teil der Business-Logik solltest du auslagern. In der Regel geschiet das in sogenannten Data Access Objects (DAO)
Damit dein Controller die Instanz dieser Klasse kennt, musst du ihn "injekten" - also im einfachsten Fall hast du einen Setter, über dem du eine Instanz deiner DAO rein reichst. Dann in den Listenern deiner GUI kannst du sie einfach verwenden.
Wie du das reinreichen machen kannst, ist hier in jüngerer Zeit im Forum mehrfach diskutiert worden.
Z.B. hier: http://www.java-forum.org/thema/methode-nach-initialize-aufrufen.172667/
Des weiteren musst du bedenken, dass Operationen auf der DB oder über das Netzwerk eine gewisse Zeit benötigen. Wenn du nun direkt diese Operationen machst, wird dir deine GUI "einschlafen". (Das würde dir übrigens bei so ziemlich allen Plattformen, die mir spontan einfallen, passieren - sei es JavaFX, SWT, Android, ...)
Damit das nicht passiert, musst du diese Operationen in einem anderen Thread ausführen und von diesem aus die GUI nur noch updaten (Fortschrittbalken, von DB/Netz gelesene Daten, ...).
Dazu noch ein paar Beispiele.
- http://www.java-forum.org/thema/ui-thread-und-db-thread-trennen-um-z-b-ladebalken-anzuzeigen.172411/
- http://www.java-forum.org/thema/meine-progbar-und-progindi-werden-nicht-aktualisiert.172464/

Ich hoffe, dass hilft.
 
Hm... Heisst dass nun "Danke, ich habe geschafft, was ich wollte." oder "Danke für den Versuch, aber ich versteh' es immer noch nicht!" ???
 

Neue Themen


Zurück
Oben