MokaByte Numero  35  - Novembre 99
Le Swing in pratica
I parte
di 
Daniela Micucci
La prima GUI realizzata tramite le swing

 


Negli articoli dei numeri scorsi apparsi su MokaByte si è tanto parlato delle Swing decantando le lodi di questo nuovo package di classi per la realizzazione di GUI accattivanti, flessibili e, perché non dirlo, molto belle. Ma in pratica come si usano? Che accorgimenti occorre prendere per  realizzare una GUI usando le Swing piuttosto che le più note AWT? Questo  che presento oggi vuole essere il primo di una serie di articoli che introduca all'utilizzo delle Swing partendo da esempi concreti

Cosa serve e come configurarlo
Le Swing sono state rilasciate prima della versione 1.2 del JDK come API a parte. Solo con il JDK 1.2 sono diventate parte integrante delle librerie standard. Poiché non tutti i programmatori java utilizzano quest'ultima versione del JDK, le Swing sono sempre disponibili come API a parte e scaricabili al sito della Sun. Se con il JDK versione 1.2 non c'è bisogno di effettuare nessuna operazione particolare, con il JDK versione 1.1 occorre eseguire i seguenti passi per il corretto funzionamento delle stesse:
    se non ancora fatto, scaricare l'ultima versione delle Swing ed installarla (siamo oggi alla 1.1.1)
    aggiornare la variabile di ambiente CLASSPATH in modo tale che possa trovare anche le nuove classi Swing. Ciò può essere fatto in svariati modi, per esempio modificando l'autoexec.bat ed inserendo le seguente linea di codice nell'ipotesi di aver installato le Swing in una directory che si chiama swing1.1.1 a partire dalla radice del disco c:
    set CLASSPATH=%CLASSPATH%;c:\swing1.1.1\swing.jar;
Una volta fatte queste operazioni si è in grado di scrivere, compilare e far girare la prima applicazione grafica con le Swing.
 
 

La prima GUI
Se si ha dimestichezza con le AWT, il passaggio verso le Swing non è difficile per quelle componenti presenti in entrambe le librerie grafiche. I concetti di Container e Component continuano a sussistere e l'utilizzo rimane pressoché invariato. Chi non avesse mai utilizzano le AWT può leggere un articolo apparso nella rubrica MokaCode ("Una semplice interfaccia creata con awt") in cui vengono spiegati questi concetti. 
Le classi che realizzano le Swing API sono numerose e contengono sia la versione Swing di tutti i Container e i Component presenti nelle AWT sia un insieme numeroso di nuovi widget grafici quali tabelle, tabbed pane, alberi, etc.. Quasi tutte le classi che rappresentano elementi grafici hanno un nome che inizia con la J, come ad esempio JButton, JDialog, etc. 
Come nelle AWT, una qualsiasi applicazione grafica realizzata con le Swing deve "appoggiarsi" su un Container particolare che realizza una finestra. Se nella AWT tale Container si chiama Frame (non è stato usato appositamente il passato, poiché le AWT continuano a far parte delle librerie del JDK standard e le Swing si appoggiano in parte su di esse), nelle Swing l'analogo si chiama JFrame. 
Come per le AWT, occorre importare nel codice sorgente le classi grafiche che si utilizzano per la realizzazione dell'interfaccia grafica. 
Se con le AWT siamo abituati a scrivere:
 

import java.awt.*;
con le Swing dovremo sostituire quella riga con l'opportuno package:
import javax.swing.*;
Si vedrà nei prossimi articoli come le classi delle swing sono inserite all'interno di package un po' più articolati rispetto a quelli delle AWT: esistono un certo numero di sottopackage che specializzano alcuni widget.
Per chi utilizza una versione del JDK 1.1.x e una versione delle Swing 1.0.x dovrà sostituire la riga sopra con:
import com.sun.java.swing.*;
Fatte queste considerazioni siamo ora in grado di scrivere un programma che visualizza semplicemente una finestra utilizzando le Swing.

Di seguito è riportato il codice per la realizzazione della finestra. Si noti ancora una volta che le uniche differenze che si riscontrano con le awt sono quelle sopra specificate.
import javax.swing.*;

public class PrimaJFrame extends JFrame
{
        public PrimaJFrame()
        {
                setTitle("Prima programma con le Swing");
                setSize(270, 150);
                setVisible(true);
        }
        public static void main (String a [])
        {
                new PrimaJFrame();
        }
}
 

 

Conclusioni
Come visto, la realizzazione di interfacce utente tramite le componenti Swing è semplice e, almeno per il momento, uguale a quella adottata per le AWT. Ora una finestra sola non serve a molto (!), ma è pur sempre l'inizio. Dal prossimo mese cominceremo ad analizzare i layout per la disposizione di componenti, l'inserimento di componenti, nonché alcuni widget estremamente utili e non presenti nelle AWT. Per il momento vi invito a provare ad inserire un bottone all'interno della finestra (un JButton) e vedere come si comporta.

  
 

MokaByte rivista web su Java

MokaByte ricerca nuovi collaboratori
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it