Come realizzare un'interfaccia grafica in java
Introduzione
Quello della programmazione è un universo nel quale ci si addentra con estrema leggerezza. Sembra si tratti di un procedimento molto semplice, eppure la costruzione di un programma richiede una certa esperienza in fatto di comandi, costrutti, contenitori e pulsanti. Una delle tecnologie più avanzate per la creazione di un programma è sicuramente Java. Si tratta di un linguaggio di programming che ci consente di creare una solida ossatura per qualunque tipo di applicativo. Ogni programma presente sui nostri computer ha il compito di estrapolare una serie di dati e restituirci dei risultati. In sostanza assistiamo ad un duplice processo di input e output, attraverso il quale vengono elaborate delle informazioni e ci vengono resi noti i risultati che ne derivano. Questa raccolta di dati e la loro rielaborazione si verificano grazie ad un'interfaccia grafica, detta anche GUI (Graphical User Interface). Essa si occupa di mettere in comunicazione l'utente con l'applicativo del quale si serve. Pertanto stiamo parlando di un elemento che va progettato con estrema attenzione. Qui di seguito vedremo nello specifico come realizzare un'interfaccia grafica in Java. Cercheremo di analizzare alcuni concetti base, cosicché anche i meno esperti possano comprendere e magari ripetere il procedimento.
Occorrente
- Manuale di Java
- Conoscenze di base sulla programmazione Java
- PC
- Connessione ad Internet
Impostare il layout del container
L?interfaccia grafica di un programma va creata tenendo conto dei componenti di input e output. Una Graphical User Interface si compone di tanti elementi. Innanzitutto essa prevede un menù, il quale contiene una serie di funzioni. Ci saranno poi dei bottoni e le relative azioni generate dalla loro pressione. Il tutto va a comporre una struttura che ci fa comunicare con il programma installato sul nostro PC. Questa struttura altro non è che una finestra, la quale funge da container. Per realizzare correttamente un'interfaccia grafica in Java, dobbiamo anzitutto impostare il layout del container. Decideremo quindi che aspetto avranno la finestra e l'applet del programma e in che modo verranno disposti i vari elementi appena citati. L'applet è un programmino più piccolo che si trova all'interno dell'applicativo principale e svolge una specifica funzione. Diciamo che potremmo parlare di finestra nella finestra, come stessimo creando una matrioska. Tornando al layout del container, stabiliremo quali sono i bottoni da inserire nell'interfaccia. In seconda battuta ci occuperemo di tutte le funzioni associate alla pressione di ciascun bottone. Tanto per avere un'idea dei comandi Java, vediamo in che modo va impostato il layout di un container. Il metodo "SetLayout" è quello che ci consentirà di assegnare all'interfaccia grafica un aspetto consono ad un utilizzo semplice e veloce. I parametri di cui terremo conto possono essere del tipo BorderLayout, FlowLayout, GridLayout o BoxLayout. Questi quattro vengono impiegati con una certa frequenza, ma ne esistono tanti altri.
Associare un ascoltatore a ciascun evento
Al momento di realizzare un'interfaccia grafica in Java, dobbiamo tenere conto dei vari eventi associati a ciascun componente. Supponiamo di dover cliccare su un bottone. Quando ci passiamo sopra con il cursore, questo assume una colorazione diversa. Un cambiamento del genere è una risposta all'azione che svolgiamo noi. Questo evento viene gestito automaticamente dalla finestra. Altri invece vengono lasciati all'utente, che ha il compito di definirli. Uno degli eventi gestiti dall'utente è per l'appunto il click sul bottone che poi subisce la trasformazione. In un'interfaccia grafica GUI, ciascun evento si affianca ad un ascoltatore, ossia un applicativo capace di gestirlo. Se ad esempio facciamo click su un bottone e questo cambia colore, un evento di questo tipo ha bisogno di un programmino che lo gestisca. In tal caso potremmo ricorrere ad un java.util.EventListener.
Creare un'interfaccia AWT
Realizzare un'interfaccia grafica in Java significa letteralmente disegnare la finestra di un programma. Le interfacce in Java si possono creare in due modi. In questo frangente, abbiamo modo di ricorrere alla libreria AWT o alla libreria Swing. La prima viene generalmente utilizzata per interfacce molto semplificate e segue uno schema del tipo
import java.awt.*;
import java.awt.event.*;public class AWTExample extends Frame{ private static String labelPrefix = "Number of clicks: ";private int numClicks = 0;
Label label = null;
Button button = null;public AWTExample()
{
label = new Label(labelPrefix + "0 ");button = new Button("Clicca qui!");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ numClicks++;
label.setText(labelPrefix + numClicks); } });
setLayout(new BoxLayout(2, 1));
add(button);
add(label);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
pack();
setVisible(true);
}
public static void main(String[] args)
{
AWTExample app = new AWTExample();
}
}.
I comandi riportati qui fanno riferimento alla creazioe di una finestra con bottone che al click del mouse viene evidenziato.
Creare un'interfaccia Swing
Uno schema un po' diverso si ottiene con la libreria di tipo Swing, la quale si presta egregiamente alla realizzazione di un'interfaccia adatta a qualunque piattaforma.Avremo quindi, per la realizzazione di un'interfaccia dotata di bottoni, uno schema di comandi del tipo
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SwingExample extends JFrame
{
private static String labelPrefix = "Number of clicks: ";
private int numClicks = 0;
JLabel label = null;
JButton button = null;
public SwingExample()
{
label = new JLabel(labelPrefix + "0 ");
button = new JButton("Clicca qui!");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ numClicks++;
label.setText(labelPrefix + numClicks);
}
});
Container panel = getContentPane();
panel.setLayout(new BoxLayout(2, 1));
panel.add(button);
panel.add(label);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
pack();
setVisible(true);
}
public static void main(String[] args)
{
SwingExample app = new SwingExample();
}
}.
Guarda il video
Consigli
- Studiare i comandi relativi alla creazione di JFrame, JLabel e JButton.
- Preferire la libreria Swing alla AWT poiché si presta maggiormente ad interfacce grafiche compatibili con più di due piattaforme differenti tra loro.