Corso di Java

(senza pretese)

Lezione sei: oggetti da inserire in una finestra


Testo

Per inserire il testo in una applicazione ci sono per lo meno tre modi, che utilizzano tre oggetti differenti: label, text field e text area.
Le prime sono delle semplici etichette di testo che mostrano il testo che gli passate come argomento oppure che inserite in un secondo momento con il metodo appropriato. Per creare una label si usa la seguente sintassi:

JLabel etichetta = new JLabel("Testo da visualizzare");

Crea l'etichetta e gli assegna la stringa Testo da visualizzare, oppure si può anche scrivere così:

JLabel etichetta = new JLabel();

//Altro codice

etichetta.setText("Testo da visualizzare");

che prima crea una etichetta vuota e in seguito le assegna una stringa da visualizzare.
Questo esempio non era dei migliori, ma per farvi capire come mai potrebbe essere necessario cambiare il testo di una etichetta in seguito, porto ad esempio il mio programma HTML (J)Editor che potete trovare nella sezione download. Questo programma ha una status bar che cambia il testo al suo quando si passa sopra ai bottoni, spiegando l'azione eseguita dai pulsanti. Ebbene la status bar è fatta con una JLabel che cambia il suo testo al passaggio del mouse sopra i bottoni e che visualizza altrimenti una scritta di default.

I text field sono dei normali campi di inserimento dei testi (come quelli nei form delle pagine HTML) e si creano con il codice:


JTextField tfield = new JTextField("Testo da visualizzare");

JTextField tfield = new JTextField(20);

(il secondo serve per specificare che viene creato un nuovo oggetto che occupa lo spazio di venti caratteri), oppure chiamando il costruttore senza specificare alcun testo e aggiungendolo in seguito come per le JLabel.
In aggiunta il testo nel form può essere cambiato (di default) oppure reso non modificabile con i seguenti metodi:

tfield.setEditable(false);  //Impedisce le modifiche
tfield.setEditable(true);   //Rende possibile editare

Da notare che il secondo metodo serve soltanto per rendere nuovamente modificabile un textfield dopo che è stato "disattivato" (non modificabile), in quanto ogni textfield, per default, permette di modificare o inserire una stringa al suo interno.

Lo stesso discorso vale anche per le textarea, con l'aggiunta del fatto che si hanno a disposizione più righe su cui scrivere ed è meglio specificarlo subito al momento della creazione:
JTextArea tarea = new JTextArea(String testo, int righe, int colonne);

Dove testo è la stringa di testo da far apparire nella textarea, righe e colonne sono interi che indicano il numero di righe e colonne. Ecco un esempio pratico:
JTextArea tarea = new JTextArea("Ciao!!!", 10, 30);

Crea una textarea di 10 righe per 30 colonne con la scritta "Ciao!!!" all'interno. Lo stesso discorso fatto per i textfield riguardo alla modifica del testo si applica anche in questo caso.

Per tutti le altre informazioni riguardanti questi tre elementi vi rimando ad una buona guida per il Java: qui infatti voglio soltanto dare un'infarinatura sulle cose essenziali per creare una applicazione, per quanto riguarda le rifiniture sta alla vostra curiosità cercare come realizzarle.


Bottoni

I bottoni sono una delle componenti principali che permettono l'interazione tra l'utente e il programma.
Il modo più semplice per creare un bottone è questo:
JButton bottone = new JButton();

Ma così non è che si vede molto bene quello che succede. Vediamo invece questi altri esempi:
//Crea un bottone con etichetta "Cliccami"
JButton bottone_2 = new JButton("Cliccami");

//Crea un bottone con una icona: prima bisogna creare l'icona.
ImageIcon icona = new ImageIcon("imm.gpj");
JButton bottone_3 = new JButton(icona);

Inoltre si può combinare le due cose e creare un bottone con una immagine e del testo.
Per adesso mi sono limitato a far vedere come creare ed inserire i bottoni, in una prossima lezione vi dirò come fare per far eseguire una azione alla pressione di un bottone.
Di interesse per i bottoni sono i metodi setBackground(Color c), setText(String str), setForeground(Color c) che servono per imopostare il colore di sfondo, il testo e il colore in primo piano.
Una nota su quanto scritto dentro i metodi che riguardano il colore: il codice Color c vuol dire che lì dentro ci deve essere messo l'handle ad un colore oppure il colore deve essere dichiarato al suo interno. Per spiegarmi meglio vi farò un esempio di come si crea un bottone con testo "Cliccami" e sfondo blu (lo stesso discorso vale per il Foreground):
JButton bottone_4 = new JButton("Cliccami");
bottone_4.setBackground(new Color(0,0,255));

Così abbiamo specificato il colore al momento dell'assegnazione dello stesso allo sfondo e come vedete il colore è un oggetto contraddistinto da tre interi che rappresentano il colore in RGB.
Per avere lo stesso risultato potevamo anche fare:
JButton bottone_4 = new JButton("Cliccami");
Color c_blu = new Color(0,0,255)
bottone_4.setBackground(c_blu);

che è equivalente. Questo metodo è utile quando si deve assegnare un colore a diversi elementi ed è più comodo riferirsi ad una variabile invece di usare il primo metodo.

Questi sono i componenti principali per garantire un minimo di interattività tra il programma e l'utente. Nella prossima lezione vi mostrerò come creare i menù, i vari box di messaggio, i checkbox e i combobox.

Nota: ci sarebbero molte altre cose da dire riguardanti gli oggetti trattati in questa lezione, ma sono talmente tanti (e umanamente non me li ricordo tutti!) che vi consigio un buon manuale o le references di Java per impararli.


Prossima pagina

Indice Webdesign