Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Figurene i FXML-filer er i utgangspunktet statiske, så for å lage dynamisk ; filene lastes inn og innholdet vises frem. For å lage dynamisk grafikk, altså bevegelige figurer, så trenger en å koble sammen FXML-kode og Java-kode. For å få det til, så må koden kunne to ting:

  1. Referere til figur-elementer: Uten denne muligheten går det ikke an å få endre på figur-instansene, f.eks. Circle- og Line-objekter, som ble laget da FXML-fila ble lastet inn og vist.
  2. Reagere på input fra brukeren: Uten denne muligheten kan ikke brukeren påvirke eller styre hva som skjer.

Dette kan gjøres uten FXML, men det er litt enklere hvis en bruker mekanismer innebygget i FXML, som vi skal se.

Referanser

Når en laster inn og viser frem (innholdet i) en FXML-fil, så blir det enkelt sagt, laget ett Java-objekt for hver FXML-tag tilvarende tag-navnet. F.eks. vil <Group> gi et Group-objekt og <Circle> gir et Circle-objekt. Objektene legges inni hverandre tilsvarende tag-strukturen. F.eks. vil sirkelen havne inni gruppa, siden <Circle> inni <Group>. Det første problemet en støter på når program-koden skal endre på sirkelen, er hvordan få tak i sirkel-objektet i første omgang, når det ligger dypt nedi en struktur som ble laget under FXML-innlasting. Heldigvis har FXML en todelt mekanisme for akkurat det: 1) en kan knytte id-er til tag-ene og 2) få FXML til å sette tilsvarende variabler ved innlasting. 

Til hver FXML-tag eller node kan det knyttes en id, altså et unikt navn (må sikres av utvikleren) tilsvarende , helt analogt med id-tag'en i HTML. En nyttig funksjon er lookup(String id) som kan brukes til å finne en node med en unik id i en del av hierarkiet. Ellers kan også id'en brukes til å identifisere noder når man bruker css-stiler (mer om css lenger ned).

...