Ho un problema che per voi esperti è sicuramente banale. Dal codice qui sotto si vede che ho creato un JPanel al quale ho inserito un bottone. Cliccando il bottone viene generato un numero e disegnato sul pannello. Tornando a ripremere il pulsante vorrei che il nuovo numero generato cancellasse il precedente... ma ahimè così non è... Dove ho sbagliato????
codice:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class StampaNumeriTest { public static void main(String[]args) { FinestraTest frame = new FinestraTest(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class FinestraTest extends JFrame { public FinestraTest() { this.setSize(300,200); Container contenitore = this.getContentPane(); PannelloTest panel = new PannelloTest(); contenitore.add(panel); } } class PannelloTest extends JPanel { public PannelloTest() { JButton bottoneEstrazione = new JButton("Estrai Numero"); this.add(bottoneEstrazione); AzioneEstrazione azioneEstrazione = new AzioneEstrazione(); bottoneEstrazione.addActionListener(azioneEstrazione); } public void paintComponent(Graphics g) { super.paintComponent(g); if(numeri.size()>0) { for(int i=0; i<numeri.size(); i++) { g.drawString(numeri.get(i)+"",100,80); } } } private class AzioneEstrazione implements ActionListener { public void actionPerformed(ActionEvent event) { Integer numeroEstratto = (int)(Math.random()*90); numeri.add(numeroEstratto); repaint(); } } private ArrayList<Integer> numeri = new ArrayList<Integer>(); }


Rispondi quotando