E' data la classe Tombola che implementa il gioco della tombola
public class Tombola
{
private boolean estratti[];
private int eCount;
public Tombola()
{
estratti = new boolean[90];
azzera();
}
public void azzera()
{
for (int i=0; i<90; i++)
estratti[i] = false;
eCount = 0;
}
public int estrai()
{
boolean ok = false;
int n = -1;
while ((eCount<90) && (!ok))
{
n = (int)Math.round(Math.random()*90);
if (estratti[n]==false)
{
ok = true;
estratti[n] = true;
eCount++;
}
}
return n+1;
}
}
ESERCIZIO
L'esercizio consiste nella realizzazione di un'applicazione grafica (con Swing) che simula il gioco della tombola.
La classe principale Swing1 è definita come segue:
import java.awt.*; import javax.swing.*; import java.awt.event.*;
public class Swing1
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Esempio 1");
Container c = frame.getContentPane();
Swing1Panel p = new Swing1Panel();
c.add(p);
frame.setBounds(20,20,300,300);
frame.show();
}
}
La classe Swing1Panel è parzialmente definita come segue:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Swing1Panel extends JPanel implements ActionListener
{
private Tombola t;
private JTextField display;
private JTextField num[];
private JButton est, azz;
public Swing1Panel()
{
...
}
public void actionPerformed(ActionEvent e)
{
...
}
public void accendi(int n)
{
...
}
public void spegniTutto()
{
...
}
}
Parte 1 - Creazione del pannello
Scrivere l'implementazione del costruttore di Swing1Panel in modo da creare una finestra come quella riportata qui di seguito

Attenzione:
E' obbligatorio utilizzare le variabili riportate nell'implementazione della classe Swing1Panel e cioè
private Tombola t; private JTextField display; private JTextField num[]; private JButton est, azz;
Parte 2 - Gestione evento
Scrivere l'implementazione del metodo actionPerformed che fornisce la risposta all'evento di pressione dei bottoni in modo da realizzare la logica di funzionamento descritta qui di seguito:
Parte 3 - Gestione accensione e spegnimento numeri
Scrivere l'implementazione del metodo accendi() che riceve come parametro un numero e accende il campo corrispondente facendolo diventare verde (setBackground(Color.green))
Scrivere l'implementazione del metodo spegniTutto() che spegne tutti i campi con i numeri facendoli diventare bianchi (setBackground(Color.white))