Estrapolare da un pannello tutti i chackbox selezionati

di il
3 risposte

Estrapolare da un pannello tutti i chackbox selezionati

Salve ragazzi ho un problema che non riesco a risolvere in sostanza ho un pannello con all' interno un numero dinamico di chackbox (nella mia prova sono 2) voglio controllare se sono stati selezionati ma se provo a selezionali tutti e 2 il secondo controllo mi da la condizione vera questo è il codice


                                                  // app è una classe che crea un pannello con delle chackbox e ha il metodo getPannello che ritorna il pannello creato
					for(int i = 0;i<app.getPannello().getComponentCount();i++){
						if(((JCheckBox)app.getPannello().getComponent(i)).isSelected()){
							appoggio.mettiNelCarrello(offerteAttive.get(i));
					//	app.getPannello().remove(i);
						}
					}
					app.setPannello(app.getPannello());
					frame.setVisible(false);
					new graficaUtenteHome(sistema, appoggio);

3 Risposte

  • Re: Estrapolare da un pannello tutti i chackbox selezionati

    Ma che è sta chackbox ???
  • Re: Estrapolare da un pannello tutti i chackbox selezionati

    broke31 ha scritto:


    					for(int i = 0;i<app.getPannello().getComponentCount();i++){
    						if(((JCheckBox)app.getPannello().getComponent(i)).isSelected()){
    							appoggio.mettiNelCarrello(offerteAttive.get(i));
    					//	app.getPannello().remove(i);
    						}
    					}
    
    Pensaci un attimo: se rimuovi il primo, il secondo diventa il primo ....

    Comunque:
    - Un accesso del genere con getComponent() ha senso solo se gli unici componenti sono appunto quei JCheckBox (immagino sia così, quindi ok). Comunque sarebbe meglio (e più pulito) tenersi un array/List di JCheckBox.
    - Quando si fanno invocazioni in cascata del tipo x.getAaa().getBbb() ...... molte volte (non sempre, ovvio) è un sintomo che il design delle classi fa un po' "acqua".
  • Re: Estrapolare da un pannello tutti i chackbox selezionati

    Grazie per il consiglio lo terrò presente anche in futuro...
Devi accedere o registrarti per scrivere nel forum
3 risposte