Visualizzazione dei risultati da 1 a 3 su 3

Discussione: joptionpane e combobox

  1. #1

    joptionpane e combobox

    Salve vorrei creare una combobox popolata con dei dati provenienti da un arraylist utilizzando joptionpane.
    Ho fatto cosi, ma non funge.
    codice:
     case 2:{
          Object sele;
      Object[ ] scelte;
        int cont=medici.size();
      if(cont>0){
          
    temp=new ArrayList<String>();
      for(int i=0;i<cont; i++){
    
        String mioNome=medici.get(i).getNominativo();
       temp.add(mioNome);
     scelte=temp.toArray();
      }
      }
      sele=JOptionPane.showInputDialog(null,"Scegli","Scelta Multipla",JOptionPane.INFORMATION_MESSAGE,null, scelte, scelte[0]);
      break;
      }
    mi ritorna il seguente errore:
    codice:
    error: variable scelte might not have been initialized
      sele=JOptionPane.showInputDialog(null,"Scegli","Scelta Multipla",JOptionPane.INFORMATION_MESSAGE,null, scelte, scelte[0]);
    intanto io 'scelte' mi sembra diaverlo instanziato. come posso sistemarlo?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da 19pantarei75 Visualizza il messaggio
    intanto io 'scelte' mi sembra diaverlo instanziato. come posso sistemarlo?
    Nota che il scelte=temp.toArray(); l'hai messo dentro il ciclo for.
    Il compilatore non "sa" che cosa succederà a runtime, è solo in grado di fare una analisi "statica" sul codice. E per quello che controlla, vede che il ciclo for "potrebbe" non essere mai eseguito (se cont fosse 0). E in tal caso deduce che scelte potrebbe non venire inizializzato e per questo segnala errore.

    Semplicemente sposta scelte=temp.toArray(); dopo il for.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie avevi ragione. ho modificato cosi
    codice:
    case 2:{
          Object sele;
      Object[ ] scelte;
        int cont=medici.size();
        temp=new ArrayList<String>();
      if(cont>0){
          
    
      for(int i=0;i<cont; i++){
    
        String mioNome=medici.get(i).getNominativo();
       temp.add(mioNome);
    
      }
       
      }
      scelte=temp.toArray();
      sele=JOptionPane.showInputDialog(null,"Scegli","Scelta Multipla",JOptionPane.INFORMATION_MESSAGE,null, scelte, scelte[0]);
      break;
      }

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.