Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] settare due ActionListener diversi per uno stesso bottone

    ciao ragazzi, ho questo problema: ho un frame con form con due radiobuttons (A e B) ed un bottone classico che chiamiamo OK. vorrei che questo bottone eseguisse due azioni differenti, in base al radiobutton che e' selezionato. non sapendo s'e' c'e' un modo di procedere standard per casi come questi (se c'e' illuminatemi), sono andato ad intuito ed ho quindi pensato di creare 3 classi che implementano ActionListener: EseguiRichiesta, AzioneA ed AzioneB. quindi, nel pannello dove si trova il mio bottone OK, registro OK con l'actionlistener EseguiRichiesta. in EseguiRichiesta ho implementato un controllo: se e' selezionato A, allora registro OK con AzioneA, se e' selezionato B allora registro OK con AzioneB. in teoria dovrebbe funzionare, in pratica ottengo a runtime un nullpointerexception al caricamento del frame, e a giudicare dalla riga d'errore, si tratta di un problema di acquisizione del bottone OK da parte di EseguiRichiesta e del conseguente settaggio dell'actionlistener AzioneA o AzioneB per il bottone OK in base al controllo dei radiobuttons.

    chi mi tira fuori dai pasticci?
    and the black stones under my bare feet
    cold and smooth like her milk-white palm
    and the silence which falls upon this shore
    resounds now louder than oncoming storm
    for all is gone

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Per prima cosa dovresti postare del codice che faccia capire dove è l'errore in modo da poterti aiutare.
    In secondo luogo, non vedo perchè registrare più di un ActionListener su uno stesso pulsante (anche se questo può essere ovviamente fatto).
    Per una cosa così normale, è sufficiente impostare un ActionListener che controlla prima quale dei due RadioButton è selezionato e, conseguentemente, esegue l'azione specifica (magari delegandola ad un metodo specifico o addirittura ad una specifica classe, se proprio si vuole mantenere una certa separazione semantica del codice).

    Per il NullPointerException, come già detto, dovresti postare un po' di codice per capire dove questa eccezione viene lanciata.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    grazie, in effetti alla fine ho risolto cosi'... che idiota a non averci pensato
    and the black stones under my bare feet
    cold and smooth like her milk-white palm
    and the silence which falls upon this shore
    resounds now louder than oncoming storm
    for all is gone

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.