Errore Listener : si ripetono

di il
2 risposte

Errore Listener : si ripetono

Buongiorno,
sono nuova da queste parti e spero spiegarmi al meglio riguardo al mio problema.
Sto scrivendo una classe java con differenti listener , ma spesso questi si ripetono senza motivo e non so più cosa provare per evitarlo.
Faccio un esempio:

nel metodo principale della classe ho un JDialog con differenti bottoni, tra questi uno "AddExam" che mi permette appunto di aggiungere un esame a una lista.
Quando viene cliccato questo bottone si attiva il listener della classe e parte il metodo actionPerformed dove possiamo trovare questi if:

 if(button.equals(baddExam.getText()))
 {
	addNewExam();
 }
else if(button.equals(bexitAdd.getText()))		
		dialogAddExam.dispose();
 else if(button.equals(bsaveAdd.getText()))	
  {
	examList.add(newDataElement.getText()+" "+newAttribute.getText());
	dialogAddExam.dispose();
  }
poiché è stato selezionato il bottone baddExam verrà richiamato il metodo addNewExam. In addNewExam c'è un JDialog ( dialogAddExam ) con due bottoni SAVE e EXIT , e delle JTextFiel per inserire i valori.
Se si inseriscono i valori e poi si clicca save/exit , verra di nuovo richiamato il metodo actionPerformed, si andrà negli if che corrispondono ai bottoni e mi aspetterei vedere il dialogAddExam.dispose() chiudersi e basta.

Invece quando clicco save/exit si riapre il dialogAddExam per più volte consecutive senza che io abbia selezionato nulla.

Spero di essere stata chiara

2 Risposte

  • Re: Errore Listener : si ripetono

    laura98 ha scritto:


    
     if(button.equals(baddExam.getText()))
    
    Chiariamo una cosa: button che cosa è?
  • Re: Errore Listener : si ripetono

    Andbin ha ragione! Occorre postare il codice di tutta la classe per capire cos'è button
    Provo ad indovinare:
    Esempio mi aspetterei che sia
    bexitAdd.getText() == "EXIT"
    cioè il text del JButton ovvero una String e se la variabile button è di tipo JButton manderebbe a monte tutti gli if / else if.
    Ma la cosa più importante, se ci sono vari listener ( 3 con ognuno il suo actionPerformed) perché semplicemente non inserire le istruzioni che ciascuno dovrà compiere senza considerare l' if / else if?
    L'if lo fai fisicamente te Se clicco su "Add" esegue questa cosa, se clicco su "SAVE" esegue quest'altra e se clicco su "EXIT" esegue quest'altra cosa ancora
Devi accedere o registrarti per scrivere nel forum
2 risposte