Introduzione alla Java FX GUI

Java è un linguaggio ormai maturo che vanta interfacce grafiche semplici ed intuitive. Accanto alle storiche librerie Swing, trattate in queste pagine, ci sono le più recenti e performanti Java Fx, librerie inizialmente sviluppate da Oracle e ora concesse al mondo Open Source e la sua collettività. Vediamo come usarle cercando di confrontarle con le Swing

 JavaFx nascono nel 2008, dall’esigenza di riscrivere e ristrutturare le ottime Swing per renderle più funzionali a pari merito con le GUI dei linguaggi concorrenti. Il lavoro, seppur a rilento, era stato di ottima fattura in quanto a performance da parte di Sun, poi acquisita da Oracle. Il problema di quel periodo storico era cruciale: JavaScript aveva fatto passi in avanti mostruosi così da rendere HTML e i browser ottimi strumenti per creare applicazioni anche complesse, seppur di natura web, capaci di girare anche in locale. Oracle ha intuito questa sfida, in cui Android, Angular, React ed altri sistemi tendono ad imoprsi tra gli sviluppatori, segnando una rotta. Dal 2018 con Java 11, Oracle si disfa di Java Fx, non includendolo più nella sua JVM (a differenza delle Swing, quasi per retro-compatibiltà). Java Fx viene così concesso alla comunità, che lo sviluppa e porta avanti ancora oggi sotto il nome di OpenJFX, giunto alla versione 14. L’intento è chiaro: il mondo va verso il cloud spinto e, anche se c’è spazio per interfacce grafiche in locale per gestire oggetti remoti, non è più la priorità facendo di HTML5/CSS3/Javascript i veri padroni del mondo lato client. Lo stesso sito di OpenJfx cita:

"OpenJFX is an open source, next generation client application platform for desktop, mobile and embedded systems built on Java"

Piattaforme dektop, mobile e sistemi embedded, territorio sconosciuto al navigatore main-stream ma che vanta una fetta di mercato professionale non trascurabile dove la portabilità è piuttosto importante, soprattutto quando parliamo di piattaforme diffuse basate sulla tecnologia ARM, per citarne una.

Va da se, è evidente anche nelle pagine del nostro sito, come la programmazione web sia quasi preponderante ormai nella realizzazione di servizi software. Il cloud sembra interessante, e sta convincendo sempre più il mercato che spinge in quella direzione, spesso anche in modo esagerato. Non tutto però è vantaggioso da far girare in cloud, vuoi per la qualità dell’infrastruttura di rete, dei costi non sempre chiari e spesso più alti delle licenze, e della oggettiva insensatezza di alcune scelte tecniche. Perché usare un Office online o un prodotto di fotoritocco Adobe solo attraverso la connessione internet in cloud? Se internet è giù non posso stampare una lettera o una foto? Eccessi di chi o cosa spinge il mercato. Di fatto JavaFx, merita di essere approfondita ed usata, anche solo per creare i nostri tool personali.

Se non vi convince la scelta di React, Angular, JQuery, VUE.JS, ma non volete sporcarvi le mani con JavaFx c’è sempre la possibilità di un approccio ibrido che sfrutti le potenzialità di Java con HTML e AJAX che si combinano in un Web Toolkit detto Vaadin.

Maven con tutte le dipendenze automatiche

GLUCON SceneBuilder file FXML

Importare il file scenario

Ultima modifica 10 Marzo 2022