import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class JP extends JPanel
{	private float cr = 0, cg = 0, cb = 0, co = 0.5F;
	private JCheckBox rr = new JCheckBox("Rosso");
	private JCheckBox gg = new JCheckBox("Verde");
	private JCheckBox bb = new JCheckBox("Blu");
	private JCheckBox oo = new JCheckBox("Opaco");
	public class AscoltatorePulsanti 
							implements ItemListener
	{	public void itemStateChanged(ItemEvent e)
		{	JCheckBox ch = (JCheckBox)e.getSource();
			if (ch == rr)
			{	if (e.getStateChange() == ItemEvent.SELECTED)
							cr = 1; else cr = 0;	}
			else if (ch == gg)
			{	if (e.getStateChange() == ItemEvent.SELECTED)
							cg = 1; else cg = 0;	}
			else if (ch == bb)
			{	if (e.getStateChange() == ItemEvent.SELECTED)
							cb = 1; else cb = 0;	}
			else if (ch == oo)
			{	if (e.getStateChange() == ItemEvent.SELECTED)
							co = 1; else co = 0.5F;	}
			repaint();
		}
	}
	JP()
	{	setBackground(Color.white);
		add(rr); add(gg); add(bb); add(oo);
		AscoltatorePulsanti ap =
											new AscoltatorePulsanti();
		rr.addItemListener(ap); gg.addItemListener(ap);
		bb.addItemListener(ap); oo.addItemListener(ap);
	}
	public void paintComponent(Graphics g)
	{	super.paintComponent(g);
		Color cc = new Color(cr, cg, cb, co);
		g.setColor(cc); g.fillRect(50, 80, 240, 60);
	}
}

class JFF extends JFrame
{	JFF(String s)
	{	super(s);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		JP pan = new JP(); getContentPane().add(pan);
	}
}

public class ProvaRGB
{	public static void main(String[] args)
	{	JFF fi = new JFF("RGB");
		fi.setSize(350, 200);
		fi.setVisible(true);
	}
}
