È l’Epifania e a qualcuno interesserà sapere che i programmatori sono così megalomani da averla tradotta dal greco in sanscrito per rivolgersi all’immagine di se stessi. Avatar, infatti, ha lo stesso significato: vuol dire grossomodo apparizione della divinità e come sapete è il termine utilizzato per le fotografie dei profili sul web. Digressioni linguistiche a parte, oggi proporrò l’ultima puntata della mini-serie sulla programmazione in Java perché le vacanze natalizie sono terminate e da domenica prossima parlerò di design.

Ho spiegato perché la scelta del linguaggio sia ricaduta proprio su Java, mostrato come creare il primo programma e suggerito un approccio per imparare dagli altri. Complice la ricorrenza, questa volta parlerò d’interfacce grafiche: capito come interagire con gli strumenti di sviluppo e iniziato a scrivere delle semplici applicazioni per il prompt dei comandi, è opportuno cominciare a esplorare la realizzazione delle Graphical User Interface (GUI). Nessuno userebbe più dei programmi dal terminale, se escludiamo gli sviluppatori.

Java prevede essenzialmente due infrastrutture sulle GUI: Abstract Window Toolkit (AWT) e Swing. Esistono numerose motivazioni per preferire l’uno o l’altro. AWT è simile allo Standard Widget Toolkit (SWT) mantenuto da Eclipse al quale accennavo la settimana scorsa riguardo all’esplorazione del codice. Swing è più “leggero”, è scritto in Java al 100% ed è indipendente dall’ambiente d’esecuzione. Poiché, come sostiene Silvio Gulizia, i sistemi operativi sono morti, non conoscendo nessuno dei due ho preferito orientarmi su Swing.

Per inciso, se l’obiettivo è quello di creare applicazioni per Android dovreste conoscere meglio AWT e SWT. Swing è più adatto a programmi da eseguire su varie piattaforme: non richiede la conoscenza d’altri linguaggi “nativi”, a differenza di AWT, perché le GUI sono disegnate utilizzando i componenti già disponibili in Java. Ricordate HelloWorldApp.java che abbiamo scritto due settimane fa? Ecco, con Swing potete visualizzarlo indipendentemente su Windows, Mac OS X o Linux in una comoda finestra. Con AWT sarebbe più difficile.

Sul web trovate vari esempi di hello, world visualizzato con Swing: uno abbastanza comprensibile è quello proposto da Wikipedia che, peraltro, offre una descrizione completa e in lingua italiana delle differenze rispetto ad AWT. Sostituito il sorgente del file HelloWorldApp.java dovrete ricompilarlo con javac prima di poterlo eseguire. Se non avete commesso degli errori, il terminale dovrebbe aprire una nuova finestra con la scritta Hello, World!. Il codice di Wikipedia non è il più semplice che possiate trovare, ma è un inizio.

Magari, avreste preferito che negli interventi importassi direttamente delle stringhe di codice: avrei potuto farlo, non senza alcuni problemi d’impaginazione, ma ho scelto di dare delle indicazioni più generiche perché se voleste imparare dei linguaggi diversi da Java potreste comunque riferirvi a queste pagine. Certo, Swing non è disponibile in C, C++ od Objective-C. È l’approccio a essere il medesimo. Anche parlando di web design, che mi è molto più congegnale, riprenderò una procedura passo-passo su questa stessa falsariga.

Photo Credit: Oracle via Photo Pin (CC)