Využití JavaFx při tvorbě grafických aplikací

Data binding

Data binding (svazování dat) je funkčnost, pomocí které je možné vytvářet vazbu mezi datovými složkami tříd. Pro lepší představu je uveden následující příklad. Mějme třídu Trojúhelník, s Vlastnostmi reprezentujícími strany trojúhelníku. Pomocí třídy NumberBinding je možné vytvořit vazbu, představující obvod trojúhelníku jako součet jednotlivých stran, tedy jako součet hodnot Vlastností. Při změně délky jedné ze stran se automaticky přepočítá obvod. Obvod může být svázán s prvkem GUI, například vlastností textProperty třídy TextField. Tento příklad byl použit jako základ ukázkové aplikace Triangle.

Balíček FXCollections

JavaFX poskytuje rozšíření standardního frameworku kolekcí (Collection Framework) programovacího jazyka Java. Do tohoto frameworku patří často používané třídy, implementující rozhraní List (např. ArrayList) nebo Map (např. HashMap). Významnou je také třída Collections, která mj. poskytuje statické metody pro práci s kolekcemi (např. max() pro vyhledání prvku s nejvyšší hodnotou). Rozšiřující třídy a rozhraní se nacházejí v balíčku javafx.collections [4.3].

Třída FXCollections poskytuje obdobné prostředky pro práci s kolekcemi jako třída java.util.Collections, která již byla zmíněna výše. Navíc obsahuje definice obalových tříd, které implementují rozhraní ObservableList. Tyto třídy umožňují přidávání (a odebírání) Listenerů, pomocí kterých je možné reagovat na změny prováděné s obalenou kolekcí (kterou může být např. ArrayList). Obdobně rozhraní ObservableMap umožňuje reakci na změny asociativního pole (např. HashMap). Jako Listener pro ObservableList slouží rozhraní ListChangeListener a pro ObservableMap rozhraní MapChangeListener. V kódu vytváříme anonymní třídy, implemetnující tato rozhraní. Alternativně je možné použít lambda výraz.