Suche
JavaFX-Komponenten mit Scala Traits erweitern

FX Traits

Oliver Heger
© iStockphoto.com/-Vladimir-

Die Formulierung „Traits sind die Scala-Version von Java Interfaces“ stellt eine ziemliche Untertreibung dar, bieten Traits doch wesentlich reichere Gestaltungsmöglichkeiten als ihre Java-Cousins. Der folgende Beitrag demonstriert die Mächtigkeit von Traits an einem konkreten Beispiel: dem Nachrüsten fehlender Funktionalität von JavaFX-Textkomponenten quer zur Vererbungshierarchie.

JavaFX etabliert sich als ernst zu nehmende Alternative für die Erstellung optisch anspruchsvoller und komfortabler Benutzeroberflächen. Das Programmiermodell ist für Entwickler mit Erfahrung in Swing nicht allzu schwer zu erlernen, es stehen umfangreiche CSS-basierte Layoutmöglichkeiten zur Verfügung, und die enthaltenen Animationen und Effekte erlauben es dem UI-Designer, seiner Kreativität freien Lauf zu lassen. Nehmen wir also an, aufgrund dieser Vorteile soll die Oberfläche einer datenzentrischen Anwendung mittels JavaFX realisiert werden. Der Benutzer erhält diverse Eingabemasken bestehend aus Textfeldern, Textareas und anderen Standardkomponenten. Die getätigten Eingaben werden an den Server geschickt und in einer relationalen Datenbank gespeichert.

Das Problem

Natürlich muss vor der Speicherung der Daten eine Validierung durchgeführt werden. Beispielsweise finden sich im Datenmodell häufig Restriktionen für die Länge einzelner Spalten, oder die Programmlogik verlangt, dass manche Eingabefelder nur bestimmte Zeichen oder keine Sonderzeichen enthalten. Im Sinne der Usability wäre es vorteilhaft, wenn die Eingabekomponenten in der Anwendung derartige Einschränkungen direkt unterstützen, also die Eingabe fehlerhafter Daten gar nicht erst ermöglichen würden; wenn für die Spalte „Benutzername“ in der Datenbank nur fünfzig Zeichen vorgesehen sind, sollte das entsprechende Textfeld keine längeren Eingaben akzeptieren.

(…)

Geschrieben von
Oliver Heger
Oliver Heger
Oliver Heger arbeitet als Softwareentwickler und Architekt bei der Agfa HealthCare AG im Bereich Clinical Research Solutions.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.