Versions Compared

Key

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

...

Som programmerer må man forholde seg til et fullstendig nytt API (klassene og metodene som utgjør rammeverket), men overgangen er ikke så stor fordi en godt kan bruke kjente teknikker og gradvis ta i bruk de nye mulighetene.

Hierarki

En JavaFX applikasjon er bygget opp med en stage i bunn som utgjør rammen til applikasjonen, og typisk har et navn som vises øverst. En stage fylles med en scene. Scenen utgjør området hvor vi framstiller knapper, figurer, tekst og andre komponenter. Dette skjer dog ikke helt vilkårlig, siden alle komponenter må legges til i en scene graph, og kalles da noder i grafen. Grafens struktur bestemmer hvordan nodene rendres på scenen.

Altså: Stage -> Scene -> Scene Graph

 

Code Block
languagejava
titleStage and scene with empty scene graph
collapsetrue
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class SimpleJavaFX extends Application {
	
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage stage) throws Exception {
		
		Group root = new Group();
		
		Scene scene = new Scene(root,500,500, Color.AQUA);
		
		stage.setScene(scene);
		stage.setTitle("Simple JavaFX");
		stage.show();
	}
}

 

Scene Graph

Det er scenegrafen som styrer selve utformingen av grensesnittet i en JaveFX-applikasjon. JavaFX Scene Graph API gjør det mye enklere å lage et GUI ved at en scenegraf på et hvilket som helst tidspunkt vet hvilke objekter som skal vises frem, hvilke områder på skjermen som må tegnes på nytt og hvordan alt skal rendres på en mest mulig effektiv måte. Ved å bruke scenegraf API'et slipper man å forholde seg til primitive tegnemetoder og kan heller la systemet ta seg av detaljer omkring rendring.

En scene graph er en trestruktur som inneholder dataelementer, og hvert element kalles en node. En node er enten en rotnode, internnode eller løvnode. Under er et eksempel på en enkel scenegraf, både som nodetype, og med faktiske klasser som kan tilsvare nodetypen.

Image Added

Nodetyper

Image Added

Klasser som kan opptre som tilsvarende nodetype