JavaFX - Architettura
JavaFX fornisce un'API completa con un ricco set di classi e interfacce per creare applicazioni GUI con una grafica ricca. I pacchetti importanti di questa API sono:
javafx.animation - Contiene classi per aggiungere animazioni basate su transizioni come riempimento, dissolvenza, rotazione, scala e traslazione ai nodi JavaFX.
javafx.application - Contiene una serie di classi responsabili del ciclo di vita dell'applicazione JavaFX.
javafx.css - Contiene classi per aggiungere stili simili a CSS alle applicazioni GUI JavaFX.
javafx.event - Contiene classi e interfacce per fornire e gestire eventi JavaFX.
javafx.geometry - Contiene classi per definire oggetti 2D ed eseguire operazioni su di essi.
javafx.stage - Questo pacchetto contiene le classi contenitore di primo livello per l'applicazione JavaFX.
javafx.scene- Questo pacchetto fornisce classi e interfacce per supportare il grafico della scena. Inoltre, fornisce anche sotto-pacchetti come tela, grafico, controllo, effetto, immagine, input, layout, media, pittura, forma, testo, trasformazione, web, ecc. Ci sono diversi componenti che supportano questa ricca API di JavaFX .
La figura seguente mostra l'architettura dell'API JavaFX. Qui puoi vedere i componenti che supportano l'API JavaFX.
Grafico della scena
In JavaFX, le applicazioni GUI sono state codificate utilizzando un grafico di scena. Un grafico di scena è il punto di partenza della costruzione dell'applicazione GUI. Contiene le primitive dell'applicazione (GUI) che vengono definite nodi.
Un nodo è un oggetto visivo / grafico e può includere:
Geometrical (Graphical) objects - (2D e 3D) come cerchio, rettangolo, poligono, ecc.
UI controls - come pulsante, casella di controllo, casella di scelta, area di testo, ecc.
Containers - (riquadri layout) come riquadro bordo, riquadro griglia, riquadro flusso, ecc.
Media elements - come oggetti audio, video e immagine.
In generale, una raccolta di nodi crea un grafico di scena. Tutti questi nodi sono disposti in ordine gerarchico come mostrato di seguito.
Ogni nodo nel grafico della scena ha un unico genitore e il nodo che non contiene alcun genitore è noto come root node.
Allo stesso modo, ogni nodo ha uno o più figli e il nodo senza figli è chiamato leaf node; un nodo con figli è definito come unbranch node.
Un'istanza di nodo può essere aggiunta a un grafico di scena solo una volta. I nodi di un grafico di scena possono avere effetti, opacità, trasformazioni, gestori di eventi, gestori di eventi, stati specifici dell'applicazione.
Prisma
Prism è un file high performance hardware–accelerated graphical pipelineche viene utilizzato per eseguire il rendering della grafica in JavaFX. Può eseguire il rendering sia di grafica 2-D che 3-D.
Per eseguire il rendering della grafica, un prisma utilizza:
- DirectX 9 su Windows XP e Vista.
- DirectX 11 su Windows 7.
- OpenGL su Mac e Linux, sistemi integrati.
Nel caso in cui il supporto hardware per la grafica sul sistema non sia sufficiente, Prism utilizza il percorso di rendering del software per elaborare la grafica.
Se utilizzato con una scheda grafica o GPU supportata, offre una grafica più fluida. Nel caso in cui il sistema non supporti una scheda grafica, Prism utilizza per impostazione predefinita lo stack di rendering del software (uno dei due precedenti).
GWT (Glass Windowing Toolkit)
Come suggerisce il nome, GWT fornisce servizi per gestire Windows, timer, superfici e code di eventi. GWT collega la piattaforma JavaFX al sistema operativo nativo.
Quantum Toolkit
È un'astrazione sui componenti di basso livello di Prism, Glass, Media Engine e Web Engine. Collega Prism e GWT insieme e li rende disponibili per JavaFX.
WebView
Utilizzando JavaFX, puoi anche incorporare contenuto HTML in un grafico di scena. WebView è il componente di JavaFX che viene utilizzato per elaborare questo contenuto. Utilizza una tecnologia chiamataWeb Kit, che è un motore browser Web open source interno. Questo componente supporta diverse tecnologie web come HTML5, CSS, JavaScript, DOM e SVG.
Utilizzando WebView, puoi:
- Renderizza contenuto HTML da URL locale o remoto.
- Supportare la cronologia e fornire la navigazione avanti e indietro.
- Ricarica il contenuto.
- Applicare effetti al componente Web.
- Modifica il contenuto HTML.
- Esegui comandi JavaScript.
- Gestisci gli eventi.
In generale, utilizzando WebView, è possibile controllare il contenuto Web da Java.
Media Engine
Il JavaFX media engine si basa su un motore open source noto come Streamer. Questo motore multimediale supporta la riproduzione di contenuti video e audio.
Il motore multimediale JavaFX fornisce supporto per l'audio per i seguenti formati di file:
Audio |
|
---|---|
Video |
|
Il pacchetto javafx.scene.mediacontiene le classi e le interfacce per fornire funzionalità multimediali in JavaFX. Viene fornito sotto forma di tre componenti, che sono:
Media Object - Questo rappresenta un file multimediale
Media Player - Per riprodurre contenuti multimediali.
Media View - Per visualizzare i media.