Un'applicazione Java usa il metodo getResource() per mostrare le immagini sulla GUI. Inoltre ad un'immagine può venire associato un gestore di evento. In genere l'immagine viene mostrata in un componente JLabel.
File → New Project
Selezionare Java → Java Application
Assegnare il nome del progetto: Dadi
Togliere la marca di spunta alla casella Create Main Class
Premere il pulsante Finish
Nella finestra del progetto espandere il nodo Dadi
Clic destro sul nodo Source Packages e, dal menu contestuale scegliere New → JFrame Form.
Nella casella Class Name scrivere: frmDadi.
Nella casella Package Name scrivere: my.dadi.
premere il pulsante Finish.
Aggiungere un Pannello.
Nella casella dei componenti trascinare tre pulsanti sul frame. Allinearli e distanziarli come in figura. Al primo pulsante assegnare la propietà Text="10 lanci". Al secondo assegnare la proprietà Text="Istogramma". Al terzo pulsante assegnare la proprietà Text="Lancia Dadi".
Trascinare due componenti TextArea, allinearli sotto ai primi due pulsanti.
Sotto al terzo pulsante collocare due label.
Quando in una applicazione si usano immagini o altre risorse si deve creare un package per le risorse. Sul computer, il package corrisponde ad una cartella.
Per creare un package per le immagini:
nella finestra del progetto fare clic destro sul package my.dadi e, dal menu contestuale, scegliere la voce: New → Java Package. Premere il pulsante Finish.
Nella finestra del progetto, verificare che il nuovo package compaia all'interno della cartella Source Package
Nell'area del Designer, selezionare una label che si trova sul form.
Nella finestra delle proprietà fare clic sulla categoria Properties e scorrere la casella fino a raggiungere la riga Icon.
fare clic sul pulsante con i puntini (…). Si apre l'editor della proprietà Icon.
Nel riquadro di dialogo relativo alla proprietà icon fare clic sul pulsante Import to Project.
Si apre un riquadro per sfogliare le cartelle. Raggiungere l'immagine che si vuole usare e premere il pulsante Next.
Nella casella Select target folder selezionare la cartella del nuovo package aggiunto nel passaggio precedente: newpackage e premere il pulsante Finish.
Dopo aver importato le sei immagini dei dadi, premere il pulsante Ok per chiudere il riquadro di dialogo.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Le immagini vengono inserite nel progetto. Cancellare il testo delle label.
Passare alla scheda Source.
Nella sezione intestazione aggiungere le righe:
import java.util.Random;
import javax.swing.ImageIcon;
Aggiungere il gestore di evento al primo pulsante (lancia 10 volte i dadi):
int k, d1, d2, s;
Random dado = new Random();
String dadostr;
jTextArea1.setText("10 Lanci di 2 dadi:\n");
for (k=1; k<=10; k++) {
d1 = dado.nextInt(6)+1;
d2 = dado.nextInt(6)+1;
s = d1+d2;
dadostr=d1+"+"+d2+"="+s;
jTextArea1.append(k + ": " + dadostr + "\n");
}
Scrivere il gestore dell'evento associato al secondo pulsante (Disegna istogramma):
int k, d1, d2, s;
int cont[] = new int[11];
Random dado = new Random();
double fattoreScala;
String riga;
for (k=0; k<11; k++) cont[k]=0;
for (k=1; k<=1000; k++) {
d1 = dado.nextInt(6)+1;
d2 = dado.nextInt(6)+1;
s = d1+d2;
cont[s-2]++;
}
for(k=0; k<11; k++){
riga= k+2 + " " + cont[k] +"\n";
jTextArea2.append(riga);
}
// istogramma
fattoreScala = (double) (30.0/cont[5]);
for (k=0; k<11; k++) {
riga = k+2+": ";
jTextArea2.append(riga);
for (int i=0; i<fattoreScala*cont[k]; i++)
jTextArea2.append("x");
jTextArea2.append("\n");
}
Scrivere il gestore dell'evento associato al terzo pulsante "Lancio dei dadi"
int k, d1, d2, s;
Random dado = new Random();
String punti[] = new String[6];
punti[0]="/my/dadi/newpackage/uno.png";
punti[1]="/my/dadi/newpackage/due.png";
punti[2]="/my/dadi/newpackage/tre.png";
punti[3]="/my/dadi/newpackage/quattro.png";
punti[4]="/my/dadi/newpackage/cinque.png";
punti[5]="/my/dadi/newpackage/sei.png";
d1 = dado.nextInt(6);
d2 = dado.nextInt(6);
jLabel1.setIcon(new ImageIcon(getClass().getResource(punti[d1])));
jLabel2.setIcon(new ImageIcon(getClass().getResource(punti[d2])));