ciao ragazzi ho un altro problemino. in pratica ho un pannello dove ci stanno dei JButton. un JButton apre un JDialog in questi JDialog ci sono un po di JCheckbox...io voglio che quando chiudo il JDialog e lo riapro rimangono settati i JCheckBox in precedenza selzionati...vi incollo tutto il JDialog. va be c'e un bel po di grafica ignoratela... io avevo provato cosi:
siccome le JCheckBox sono tutti in una mappa ho messo nel costruttore un ciclo while che mi scorre questa mappa e quelle se lezionate in precendenza li riselezionava...ma non funge...mi date un consiglio...grazie dell'aiuto

codice:
public class ProgettazioneFrame extends JDialog implements ActionListener{
	public static final int DEFAULT_WIDTH = 890;
   	public static final int DEFAULT_HEIGHT = 530;
	private Logica logica;
	private JButton ok,annulla;
	private ElencoPanel centerPanel;
	private ButtonPrestazioniPanel bottoniPrestazioni;
	private ImportoCategoriaPanel icp;
	private double valoreTabellaA;
	private double valoreTabellaB;
	private double valoreTabellaB1;

	
	
	public ProgettazioneFrame(ButtonPrestazioniPanel bottoniPrestazioni,Logica logica, ImportoCategoriaPanel icp){
		
		setModal(true);
		
		this.icp=icp;
		this.bottoniPrestazioni=bottoniPrestazioni;
		this.logica=logica;
		setTitle("Progettazione");
		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
		
		ok=new JButton("OK");
		annulla=new JButton("Annulla");
		ok.addActionListener(this);
		annulla.addActionListener(this);
		
		
		JPanel southPanel=new JPanel();
		southPanel.setLayout(new BorderLayout());
		JPanel p1=new JPanel();
		p1.setLayout(new GridLayout(2,1));
		p1.add(new JLabel("(*)prestazione richiesta in presenza di affidamento di concessione per lavori pubblici"));
		p1.add(new JLabel("(**)prestazione richiesta in caso di appalto concorso o affidamento di concessione per lavori"));
		
		JPanel p2=new JPanel();
		p2.setLayout(new GridLayout(1,2));
		p2.add(ok);
		p2.add(annulla);
		
		southPanel.add(p1);
		southPanel.add(p2,BorderLayout.EAST);
		
		centerPanel=new ElencoPanel();
		
		//Container c=this.getContentPane();
		add(centerPanel);
		add(southPanel,BorderLayout.SOUTH);
	
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		setVisible(true);
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==ok){
			String classeCategoria=icp.getClasseCategoria();
			double preventivo=icp.getImporto();
			Map<JCheckBox,String>mapTabB=centerPanel.getMap();
			Iterator<JCheckBox>it=mapTabB.keySet().iterator();
			LinkedList<String>lettereTabB=new LinkedList<String>();
			JCheckBox tmp=null;
			boolean verificato=false;
			while(it.hasNext()){
				tmp=it.next();
				if(tmp.isSelected()){
					verificato=true;
					lettereTabB.addLast(mapTabB.get(tmp));
				}	
			}
			if(verificato==false){
				JOptionPane.showConfirmDialog(ProgettazioneFrame.this,"Attenzione non è stato selezionata nessuna prestazione ","Errore",
			               JOptionPane.CLOSED_OPTION,
			               JOptionPane.INFORMATION_MESSAGE);
			}
			else{
			valoreTabellaA=logica.percentualeTabA(classeCategoria,preventivo);
			valoreTabellaB=logica.risTabellaB(lettereTabB,classeCategoria);
			valoreTabellaB1=logica.risTabellaB1(lettereTabB,classeCategoria);		
			bottoniPrestazioni.setVisible(true);
			this.setVisible(false);
			}
		}
		else if(e.getSource()==annulla){
			bottoniPrestazioni.setVisible(true);
			this.setVisible(false);
		}
	}
			
}

class ElencoPanel extends JPanel implements ActionListener{	
	private JPanel tabB,tabB1;
	private JCheckBox a,b,c,d,e,f,g,h,i,l,l1,m,n,o1,o2,o3,o4,o5,p,q,r1,r2,r3,r4,s,l2,l3,l4;
	private Map<JCheckBox,String> map=new HashMap<JCheckBox,String>();
	
	public ElencoPanel(){
		
		tabB = new JPanel();
		tabB1 = new JPanel();
		
		//informazioni tabella B
		a = new JCheckBox("a) Relazioni, planimetrie, schemi grafici");
		a.setFont(new Font("Arial",Font.PLAIN,11));
		
		b = new JCheckBox("b) Calcolo sommario spesa");
		b.setFont(new Font("Arial",Font.PLAIN,11));
		
		c = new JCheckBox("c) Relazione illustrativa, Elaborati grafici per ottenimento autorizzazioni");
		c.setFont(new Font("Arial",Font.PLAIN,11));
		
		d = new JCheckBox("d) Disciplinare elementi tecnici");
		d.setFont(new Font("Arial",Font.PLAIN,11));
		
		e = new JCheckBox("e) Computo metrico estimativo, quadro economico");
		e.setFont(new Font("Arial",Font.PLAIN,11));
		
		f = new JCheckBox("f) Relazione generale e specialistiche, elaborati grafici, calcoli esecutivi");
		f.setFont(new Font("Arial",Font.PLAIN,11));
		
		g = new JCheckBox("g) Particolari costruttivi e decorativi");
		g.setFont(new Font("Arial",Font.PLAIN,11));
		//"<html>Ciao
a tutti</html>"
		h = new JCheckBox("<html> h) Computo metrico estimativo definitivo, quadro economico,
  elenco prezzi ed eventuali analisi, quadro dell'incidenza percentuale
della quantità di manodopera");
		h.setFont(new Font("Arial",Font.PLAIN,11));
		
		i = new JCheckBox("i) Schema di contratto, capitolato speciale d'appalto, cronoprogramma");
		i.setFont(new Font("Arial",Font.PLAIN,11));
		l = new JCheckBox("l) Direzioni lavori, assistenza al collaudo, prove d'officina");
		l.setFont(new Font("Arial",Font.PLAIN,11));
		l1 = new JCheckBox("l1) Liquidazione");
		l1.setFont(new Font("Arial",Font.PLAIN,11));
		
		
		//informazioni tabella B1
		m = new JCheckBox("m*) Piano economico e finanziario di massima",false);
		m.setEnabled(false);
		m.setFont(new Font("Arial",Font.PLAIN,11));
		n = new JCheckBox("n**) Capitolato speciale e prestazionale");
		n.setEnabled(false);
		n.setFont(new Font("Arial",Font.PLAIN,11));
		o1 = new JCheckBox("o1) Relazione di indagine geotecnica");
		o1.setEnabled(false);
		o1.setFont(new Font("Arial",Font.PLAIN,11));
		o2 = new JCheckBox("o2) Relazione di indagine idrologica");
		o2.setEnabled(false);
		o2.setFont(new Font("Arial",Font.PLAIN,11));
		o3 = new JCheckBox("o3) Relazione di indagine idraulica");
		o3.setEnabled(false);
		o3.setFont(new Font("Arial",Font.PLAIN,11));
		o4 = new JCheckBox("o4) Relazione di indagine sismica");
		o4.setEnabled(false);
		o4.setFont(new Font("Arial",Font.PLAIN,11));
		o5 = new JCheckBox("o5) Relazione di indagine archeologica");
		o5.setEnabled(false);
		o5.setFont(new Font("Arial",Font.PLAIN,11));
		p = new JCheckBox("p) Studio di inserimento urbanistico");
		p.setEnabled(false);
		p.setFont(new Font("Arial",Font.PLAIN,11));
		q = new JCheckBox("q**) Schema di contratto, capitolato speciale d'appalto");
		q.setEnabled(false);
		q.setFont(new Font("Arial",Font.PLAIN,11));
		r1 = new JCheckBox("r1) Relazione di indagine geotecnica");
		r1.setEnabled(false);
		r1.setFont(new Font("Arial",Font.PLAIN,11));
		r2 = new JCheckBox("r2) Relazione di indagine idrologica");
		r2.setEnabled(false);
		r2.setFont(new Font("Arial",Font.PLAIN,11));
		r3 = new JCheckBox("r3) Relazione di indagine idraulica");
		r3.setEnabled(false);
		r3.setFont(new Font("Arial",Font.PLAIN,11));
		r4 = new JCheckBox("r4) Relazioni di indagine sismica");
		r4.setEnabled(false);
		r4.setFont(new Font("Arial",Font.PLAIN,11));
		s = new JCheckBox("s) Piano di manutenzione dell'opera");
		s.setEnabled(false);
		s.setFont(new Font("Arial",Font.PLAIN,11));
		l2 = new JCheckBox("Controllo aggiornamento elaborati di prog.,aggionamento dei manuali d'uso");
		l2.setEnabled(false);
		l2.setFont(new Font("Arial",Font.PLAIN,11));
		l3 = new JCheckBox("l3) Coordinamento e supervisione dell'ufficio di direzioni lavori");
		l3.setEnabled(false);
		l3.setFont(new Font("Arial",Font.PLAIN,11));
		l4 = new JCheckBox("l4) Ufficio della direzione lavori, per addetto con qualifica di direttore operativo");
		l4.setEnabled(false);
		l4.setFont(new Font("Arial",Font.PLAIN,11));
		
		a.addActionListener(this);
		b.addActionListener(this);
		c.addActionListener(this);
		d.addActionListener(this);
		e.addActionListener(this);
		f.addActionListener(this);
		g.addActionListener(this);
		h.addActionListener(this);
		i.addActionListener(this);
		l.addActionListener(this);
		l1.addActionListener(this);
		
		
		map.put(a,"a");
		map.put(b,"b");
		map.put(c,"c");
		map.put(d,"d");
		map.put(e,"e");
		map.put(f,"f");
		map.put(g,"g");
		map.put(h,"h");
		map.put(i,"i");
		map.put(l,"l");
		map.put(l1,"l1");
		map.put(m,"m");
		map.put(n,"n");
		map.put(o1,"o1");
		map.put(o2,"o2");
		map.put(o3,"o3");
		map.put(o4,"o4");
		map.put(o5,"o5");
		map.put(p,"p");
		map.put(q,"q");
		map.put(r1,"r1");
		map.put(r2,"r2");
		map.put(r3,"r3");
		map.put(r4,"r4");
		map.put(s,"s");
		map.put(l2,"l2");
		map.put(l3,"l3");
		map.put(l4,"l4");
		

		
		JLabel preliminare=new JLabel("Preliminare");
		JLabel definitivo=new JLabel("Definitivo");
		JLabel esecutivo=new JLabel("Esecutivo");
		JLabel direzioniLavori=new JLabel("Direzioni Lavori");
		preliminare.setFont(new Font("Arial",Font.BOLD,13));
		
		
		tabB.setEnabled(false);
		tabB1.setEnabled(false);
		
		JLabel preliminare2=new JLabel("Preliminare");
		JLabel definitivo2=new JLabel("Definitivo");
		JLabel esecutivo2=new JLabel("Esecutivo");
		JLabel direzioniLavori2=new JLabel("Direzioni Lavori");
		preliminare2.setFont(new Font("Arial",Font.BOLD,13));
		
	
		
		setLayout(new GridLayout(1,2));
		add(tabB);
		add(tabB1);	
		
	}
	
	public void actionPerformed(ActionEvent event){
		if(a.isSelected()||b.isSelected()){
			m.setEnabled(true);
			n.setEnabled(true);
			o1.setEnabled(true);
			o2.setEnabled(true);
			o3.setEnabled(true);
			o4.setEnabled(true);
			o5.setEnabled(true);
		}
		else{
			m.setEnabled(false);
			m.setSelected(false);
			n.setEnabled(false);
			n.setSelected(false);
			o1.setEnabled(false);
			o1.setSelected(false);
			o2.setEnabled(false);
			o2.setSelected(false);
			o3.setEnabled(false);
			o3.setSelected(false);
			o4.setEnabled(false);
			o4.setSelected(false);
			o5.setEnabled(false);
			o5.setSelected(false);
		}
		if(c.isSelected()||d.isSelected()||e.isSelected()){
			p.setEnabled(true);
			q.setEnabled(true);
			r1.setEnabled(true);
			r2.setEnabled(true);
			r3.setEnabled(true);
			r4.setEnabled(true);
		}
		else{
			p.setEnabled(false);
			p.setSelected(false);
			q.setEnabled(false);
			q.setSelected(false);
			r1.setEnabled(false);
			r1.setSelected(false);
			r2.setEnabled(false);
			r2.setSelected(false);
			r3.setEnabled(false);
			r3.setSelected(false);
			r4.setEnabled(false);
			r4.setSelected(false);
		}
		if(f.isSelected()||g.isSelected()||h.isSelected()||i.isSelected()){
			s.setEnabled(true);
		}
		else{
			s.setEnabled(false);
			s.setSelected(false);
		}
		if(l.isSelected()||l1.isSelected()){
			l2.setEnabled(true);
			l3.setEnabled(true);
			l4.setEnabled(true);
		}
		else{
			l2.setEnabled(false);
			l2.setSelected(false);
			l3.setEnabled(false);
			l3.setSelected(false);
			l4.setEnabled(false);
			l4.setSelected(false);
		}
	}
	
	Map<JCheckBox,String> getMap(){
		return map;
	}
}