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

    problema con if e boolean su radio-button

    Buongiorno,

    con il seguente codice:

    codice:
    try{
                      eta_old= eta.getText();
                      Mobility = Mobility_scale.getText();
                      Tinetti = Tinetti_Scale.getText();
                      b=sì_CMT1A.isSelected();
                      c=sì_Consenso.isSelected();
                      d=no_cmt.isSelected();
                      e=no_affezioni.isSelected();
                      f=no_cause.isSelected();
                      h=no_nonambulanti.isSelected();
                      int eta2=Integer.parseInt(eta_old);
                      int Mobility1=Integer.parseInt(Mobility);
                      int Tinetti1=Integer.parseInt(Tinetti);
                      if((eta2 >= 18) & (eta2 <= 65) & (Mobility1>=2) & (Mobility1<=10)
                              & (Tinetti1>=2) & (Tinetti1<=12) & (b==true)
                              & (c==true) && (d==true) && (e==true) && (f==true) && (h==true))
                      {
    
                                   ///
    
                      else{
                           rightTextArea.setText("Permesso negato");
                         }
                      }
    voglio verificare contemporaneamente tutte le condizioni indicate dentro la parentesi dove le condizioni dalla b alla h sono tutti valori booleani a seconda se il button-radio indicato è premuto o meno.I singoli bottoni sono in realtà inseriti a gruppi (sì/no) però a me basta verificare se è premuto quello che mi interessa.
    Ho già provato a mettere un & classico invece del && e a non mettere == true però, quando attraverso l'interfaccia grafica creata, premo il bottone corrispondente a sì_Consenso ovvero il secondo booleano nell'ordine, benchè tutte le condizioni precedenti fossero verificate, mi esegue ciò che ho indicato nell'else.
    Non capisco dove potrebbe essere l'errore.
    Vi ringrazio anticipatamente per i suggerimenti.

  2. #2
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Gli && sono corretti, gli == a true sono superflui visto che le variabili coinvolte sono già booleane...

    Hai postato solo una porzione di codice... comunque apparentemente non funziona perchè l'else si trova all'interno dell'if (lo vedi dal matching delle parentesi, l'ultima graffa chiude l'if non il try).
    Non capisco come faccia a compilarti, ma immagino che la spiegazione possa essere nel codice che hai omesso con "///"...

    Se non fosse così, hai provato a controllare via System.out il valore dei singoli confronti nell'if?

  3. #3
    Si è corretto ci sarebbe la prentesi prima dell'else che chiude l'if.
    Facendo girare l'applicazione (in allegato schermata che viene visualizzata)l'unico problema me lo da quel bottone lì perchè se io inizio a premere prima quelli sotto di lui non mi da problemi e poi appena arrivo a quello anche cliccando il sì visualizzo il messaggio che si ottiene quando scatta l'else.
    ora provo come hai suggerito con una visualizzazione di cosa avviene realmente.

  4. #4
    Spero si veda l'allegato ora.
    Immagini allegate Immagini allegate

  5. #5
    In risposta a chi ha seguito questo topic posso dire che l'applicazione funziona se io lascio la compilazione della data di nascita per ultima.Compilando quella per prima appena arriva al bottone sì_consenso pur vedendolo come "true" si blocca.
    Immagino che tutto ciò possa essere determinato dal fatto che essendo la data di nascita collegata a 2 focuslistener diverse (una è questa e una quella che porta al calcolo dell'età)magari ci sia qualche conflitto.

  6. #6
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Quello che hai scritto sui listener potrebbe anche essere vero (dipende dall'architettura e dalle eventuali dipendenze della tua applicazione) però avevi detto che in realtà falliva il controllo dell'if, non che ricevevi un blocco...

    Comunque, puoi provare a rimuovere uno dei due focus listener e verificare se in questo modo il problema si risolve

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.