Sto studiando da autodidatta e mi sono fermato davanti a questo problema che dovrebbe essere banale ma che io non riesco a risolvere.
Ho una classe col metodo main che crea una finestra la quale crea un pannello e lo aggiunge. Fino a qui nessun problema. Poi ho un'altra classe che gestisce i numeri dell'estrazione e anche qui va tutto bene.(non l'ho inserita nel codice per semplificare)
I guai iniziano quando, premendo il pulsante del pannello dovrei vedere i numeri (che poi sono stringhe) scritti sul pannello stesso ma in realtà non c'è niente.
Datemi una mano perchè non risco a dormire
Ecco qui il codice:
codice:
import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 import java.util.*;
 public class NumCas
 {
 	public static void main(String[]args)
 	{
 		Finestra finestra = new Finestra();
 		finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 		finestra.setVisible(true);
 	}
 }
 
class Finestra extends JFrame
{
	public static final int LARGHEZZA = 400;
	public static final int ALTEZZA = 300;
	public Finestra()
	{
		this.setTitle("CasualNumber");
		this.setSize(LARGHEZZA,ALTEZZA);
				
		Pannello pannello = new Pannello();
		Container pannelloContenitore = this.getContentPane();
		pannelloContenitore.add(pannello);
	}
}

class Pannello extends JPanel
{
	private ArrayList<String>listaNumeri;

	public Pannello()
	{
		listaNumeri = new ArrayList<String>();
		JButton bottEstraiNumeri = new JButton("Estrai Numeri");
		this.add(bottEstraiNumeri);
		AzioneEstraiNumeri aEN = new AzioneEstraiNumeri();
		bottEstraiNumeri.addActionListener(aEN);
	}
	public void paintComponent(Graphics g)
	{
		//NON RIESCO A CAPIRE PERCHE' NON VIENE SCRITTO NIENTE SULLA FINESTRA
		super.paintComponent(g);
		int x = 20;
		int y = 100;
		for(int i = 0; i < listaNumeri.size(); i++)
		{
			g.drawString(listaNumeri.get(i),x,y);
			x+=20;//serve per scrivere il numero successivo più spostato rispetto al precedente
		}
	}
	
	private class AzioneEstraiNumeri implements ActionListener
	{
		public AzioneEstraiNumeri()
		{
		}
		public void actionPerformed(ActionEvent e)
		{
			listaNumeri.add(5+"");//giusto per esempio
			listaNumeri.add(6+"");//giusto per esempio
		}
	}
}