Cosa sono le Java Foundation Classes?

Le Java Foundation Classes (JFC) sono componenti software riutilizzabili che possono essere utilizzati per creare un’interfaccia utente grafica in un’applicazione Java®. Sono un miglioramento del toolkit fornito con le prime versioni di Java®. Hanno lo scopo di semplificare lo sviluppo del software, ridurre i tempi di programmazione e raggiungere l’obiettivo di creare applicazioni che abbiano lo stesso aspetto e funzionino, indipendentemente dal tipo di computer su cui vengono eseguite.

I JFC sono un insieme di componenti dell’interfaccia utente che si espandono sull’Abstract Window Toolkit (AWT) originariamente fornito con il linguaggio di programmazione Java®. Sono componenti JavaBeans™ che fanno parte di Java 2® e sono progettati per essere multipiattaforma e personalizzabili. Hanno lo scopo di ridurre i tempi di programmazione fornendo componenti che possono essere riutilizzati da un’applicazione all’altra e da una piattaforma all’altra. Le Java Foundation Classes in realtà non sostituiscono l’Abstract Window Toolkit ma ne fanno invece parte. Tuttavia, abilitano l’ideale Java® di “scrivi una volta, esegui ovunque” in modo più completo rispetto all’AWT originale.

L’AWT consente la progettazione dell’interfaccia utente, ma lo fa utilizzando il sistema a finestre del sistema operativo su cui è in esecuzione. Ciò rende difficile creare applicazioni che abbiano lo stesso aspetto e si comportino allo stesso modo su qualsiasi piattaforma, a causa delle differenze intrinseche nelle funzionalità tra i sistemi operativi. AWT era anche molto limitato in quanto il set di controlli che forniva non era abbastanza ampio per creare interfacce utente complesse e applicazioni software avanzate. I componenti AWT sono ciò che Sun Microsystems chiama “peso massimo” perché utilizzano il sistema di finestre host.

Riconoscendo i limiti di AWT, gli sviluppatori di Netscape hanno creato un insieme di componenti chiamati Internet Foundation Classes. Si trattava di un insieme di componenti “leggeri”, componenti scritti nativamente in Java®. Ciò ha esteso la funzionalità di AWT e ha permesso agli sviluppatori di creare interfacce utente che mantenessero il loro aspetto quando eseguite su piattaforme diverse. JavaSoft ha quindi avviato un progetto congiunto con Netscape, chiamato progetto Swing. Questo progetto ha prodotto una serie di controlli dell’interfaccia utente con una varietà paragonabile a quella disponibile da qualsiasi piattaforma del sistema operativo.

Swing è un insieme di componenti leggeri che Sun ha rilasciato al pubblico in combinazione con molti altri miglioramenti delle funzionalità previsti per Java Development Kit (JDK) versione 1.2. Questo pacchetto di Swing più altri miglioramenti delle funzionalità è stato quello che JavaSoft ha chiamato Java Foundation Classes. I controlli dell’interfaccia utente di Swing sono la parte principale delle Java Foundation Classes, che includono anche, tra gli altri elementi, funzioni di stampa, appunti e accessibilità. Il JDK 1.2 include la versione completa di JFC, sebbene sia stata resa disponibile una versione limitata che potrebbe essere utilizzata con l’allora corrente JDK 1.1.