Ciao a tutti, da tempo sto cercando di creare un'applicazione che modifica un rettangolo usando un interfaccia utente.
Questa è la prima vera applicazione che tento di creare da solo e il risultato non è stato quello previsto: dal punto di vista grafico tutto è perfetto ma usando checkbox e altri bottoni non succede niente.

Come posso farlo funzionare?
Questo è il codice
codice:
//tutti gli import

class Frame extends JFrame	
{	public Frame()
	{	setSize(500, 500);
		setTitle("framequattro :-)");
		
		addWindowListener(new Chiusore());
		
		//ometto la creazione di un menù 					
		Container cont_generale = getContentPane();
		
		//creo pannello per il rettangolo
		pannelloRettangolo = new PannelloRettangoli();
		cont_generale.add(pannelloRettangolo, "Center");
		
		controlli = new JPanel();
		//metodi x creare il bordo
		controlli.setBorder(new TitledBorder(new EtchedBorder(), "Preferenze"));
		cont_generale.add(controlli, "South");
		
		//menù a tendina
		tendina = new JComboBox();
		tendina.addItem("Nero");
		tendina.addItem("Rosso");
		tendina.addItem("Blu");
		controlli.add(tendina);
		
		//checkbox
		riempito = new JCheckBox("Riempi");
		controlli.add(riempito);
		
		//radio button
		uno = new JRadioButton("20x30");
		due = new JRadioButton("30x40");
		tre = new JRadioButton("40x50");
		ButtonGroup radio = new ButtonGroup();
		radio.add(uno);
		radio.add(due);
		radio.add(tre);
		controlli.add(uno);
		controlli.add(due);
		controlli.add(tre);
		uno.setSelected(true);
		
		//intercettatori
		Ascoltatore spia = new Ascoltatore();

		esci.addActionListener(spia);
		su.addActionListener(spia);
		giu.addActionListener(spia);
		destra.addActionListener(spia);
		sinistra.addActionListener(spia);
		tendina.addActionListener(spia);
		casuale.addActionListener(spia);
		uno.addActionListener(spia);
		due.addActionListener(spia);
		tre.addActionListener(spia);
		riempito.addActionListener(spia);
		
	}

	private class Ascoltatore implements ActionListener
	{	public void actionPerformed(ActionEvent event)
		{	//cosa abbiamo cliccato?
			Object sorgente = event.getSource();
			
			if(sorgente == tendina)
				pannelloRettangolo.cambiaColore(tendina);
			else if(sorgente == riempito)	
				pannelloRettangolo.riempi();
			else if(sorgente == uno)
				pannelloRettangolo.cambiaDimensioni(20, 30);
			else if(sorgente == due)
				pannelloRettangolo.cambiaDimensioni(30, 40);
			else if(sorgente == tre)
				pannelloRettangolo.cambiaDimensioni(40, 50);
		}		
	}

	private class Chiusore extends WindowAdapter
	{	public void windowClosing(WindowEvent event)
		{	System.exit(0);
		}
	}	
	
	private JPanel controlli;
	private JComboBox tendina;
	private JCheckBox riempito;
	private JRadioButton uno;
	private JRadioButton due;
	private JRadioButton tre;
	public PannelloRettangoli pannelloRettangolo;
}	

class PannelloRettangoli extends JPanel
{	public PannelloRettangoli()
	{	larghezza = 20;
		altezza = 30;
		rettangolo = new Rectangle(0, 0, larghezza, altezza);
		setBackground(Color.yellow);
	}
	
	public void paintComponent(Graphics g)
	{	super.paintComponent(g);
		g2 = (Graphics2D)g;
		g2.draw(rettangolo);
	}
	
	public void cambiaColore()
	{	String selezionato = (String)tendina.getSelectedItem();
		if(selezionato == "Nero")
			colore = new Color(0.0F, 0.0F, 0.0F); 
		else if(selezionato == "Blu")
			colore = new Color(0.0F, 0.0F, 1.0F);
		else if(selezionato == "Rosso")	
			colore = new Color(1.0F, 0.0F, 0.0F);
				
		g2.setColor(colore);
		repaint();
	}
	
	public void riempi()
	{	g2.fill(rettangolo);
		repaint();
	}
	
	public void cambiaDimensioni(int x, int y)
	{	altezza = y;
		larghezza = x;
		repaint();
	}
	
	
	
	public Graphics2D g2;
	private Rectangle rettangolo;
	public int larghezza;
	public int altezza;
	private Color colore;	
}
Grazie in anticipo a tutti