Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47

    ottenere un array da un'arraylist

    Ho creato una lista di array che mi salva n stringhe.
    Il fatto è che queste n stringhe dovrebbero essere n opzioni in una jcombox e mi pare di capire che l'unico modo per inserire un opzione nel suddetto menù a tendina devo utilizzare un array string.
    Ecco sto provando in tutti i modi di fare questa cosa che mi sembra molto semplice ma che mi fa matematicamente "saltare" il programma !
    Ho provato il metodo .toArray ed altre risoluzioni,senza riuscire a sbloccare la situazione.
    Ringrazio in anticipo chi mi aiuterà!

  2. #2
    Può servire questo pezzo di codice?

    E' definito l'arraylist, sbaglio?

    ArrayList <String> listString

    codice:
    String [] arrayString = new String [listString.size()];
    
    for (int i = 0; i < listString.size(); i++ ){
            arrayString[i] = (String)listString.get(i);
    }

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051

    Re: ottenere un array da un'arraylist

    Originariamente inviato da ypsilonp
    Ho provato il metodo .toArray ed altre risoluzioni,senza riuscire a sbloccare la situazione.
    Il toArray funziona, magari posta un pezzo del codice e dicci che errore ti da.
    Non si sa mai, l'errore potrebbe essere anche altrove.. o forse sbagli solo ad invocare il metodo.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Scusate il ritardo e grazie intanto per l'interesse..
    Effettuando il test la console rileva che il problema lo da proprio la linea relativa a :
    codice:
    				        arrayottenuto[k] = (String)listaricettecorrettamenu.get(i);
    allo stesso modo dà problemi in altre righe contenute in altre classi...per ora sono interessato a capire se il problema risiede nel codice postato prima.
    Di seguito il codice..
    codice:
    public class CreaMenuRicette {
    public void CreazioneMenu(ArrayList listaricettecorrettadacontrollare,String[] arrayottenuto){
    	ArrayList listaricettecorrettamenu= new ArrayList();
    	int i=0;
    	int n_linee=1;
    	
    	
    	//Adesso creiamo la lista di ricette che apparirà nel menù a tendina
    
    	//in automatico il primo elemento è una ricetta..effettiamo un controllo per gestire questo caso
    	listaricettecorrettamenu.add((String)listaricettecorrettadacontrollare.get(i));
    	System.out.println("Ho aggiunto:"+listaricettecorrettadacontrollare.get(i));
    	
    	for(i=1;i<listaricettecorrettadacontrollare.size();i++){
    			//controlliamo se una ricetta è finita o meno
    			String stringacontrollo=(String)listaricettecorrettadacontrollare.get(i);
    			if(stringacontrollo.endsWith("ricetta")){
    				//è la fine della ricetta, aggiungiamo 1 a i e aggiungiamo la lista successiva se i non è uguale al .size
    				i=i+1;
    				if(i==listaricettecorrettadacontrollare.size()){
    					//siamo alla fine,era l'ultima ricetta.Abbiamo finito.
    					
    				}else{//c'è ancora un' altra ricetta.Aggiungiamola
    					listaricettecorrettamenu.add((String)listaricettecorrettadacontrollare.get(i));
    					System.out.println("abbiamo aggiunto la ricetta"+((String)listaricettecorrettadacontrollare.get(i)));
    					n_linee=n_linee+1;
    					
    				}
    				
    			}else{
    			//non è puntata la fine della ricetta..avanziamo tra gli alimenti fino ad ottenere la fine di una ricetta
    
    				
    
    				for (int k = 0; k < n_linee; k++ ){
    				        arrayottenuto[k] = (String)listaricettecorrettamenu.get(i);
    				}
    
    			}
    			
    		}
    //fuori dal ciclo for
    
    //	}
    }
    }
    Ho deciso di postare l'intero codice...se volete delucidazioni riguardo alcuni passaggi basta che lo chiediate.
    Grazie in anticipo!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se guardi le API di JComboBox vedi che puoi istanziare il componente usando un array di object oppure un elemento Vector.
    che problemi ti dà di preciso?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Il problema risiede nella riga di codice che ho scritto prima...
    infatti riesco a creare tramite il primo ciclo for una lista di stringhe che ,a meno che non abbia interpretato male,non posso utilizzare in un jcombobox.
    A questo punto cerco di convertire la list in un array tramite un altro ciclo for..ma ottengo il seguente errore:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at pgia.CreaMenuRicette.CreazioneMenu(CreaMenuRicette.java:52)
    rispetto a:
    arrayottenuto[k] = (String)listaricettecorrettamenu.get(l);

    Spero di essere stato chiaro.

  7. #7
    Controlla bene l'indice che usi nel get. Cicli su un indice k ma poi usi sempre i nel get. E' corretto? Inoltre vedo che nel primo for usi anche un i = i + 1 che dunque modifica l'indice del for stesso, pertanto al ciclo successivo i sarà incrementato di 2 (c'è anche i++ del for)

    Cmq per convertire un ArrayList ad esempio di stringhe in array basta fare semplicemnte:

    Codice PHP:
    ArrayList<Stringal = new ArrayList<String>();
    al.add("1");
    al.add("2");
    al.add("3");
    al.add("4");

    String arrayString[] = new String[al.size()];
    arrayString al.toArray(arrayString); 
    Al mio segnale... scatenate l'inferno!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    L'eccezione restituita è NullPointerException, significa che qualcosa qui vale null.
    Ora qui hai tre robe che possono essere null


    arrayottenuto[k] = (String)listaricettecorrettamenu.get(l);

    1. arrayottenuto
    2. listaricettecorrettamenu
    3. quello che è restituito da get(I).

    a prima vista è probabile il terzo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Originariamente inviato da ypsilonp
    Il problema risiede nella riga di codice che ho scritto prima...
    infatti riesco a creare tramite il primo ciclo for una lista di stringhe che ,a meno che non abbia interpretato male,non posso utilizzare in un jcombobox.
    A questo punto cerco di convertire la list in un array tramite un altro ciclo for..ma ottengo il seguente errore:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at pgia.CreaMenuRicette.CreazioneMenu(CreaMenuRicette.java:52)
    rispetto a:
    arrayottenuto[k] = (String)listaricettecorrettamenu.get(l);

    Spero di essere stato chiaro.
    Questo metodo funziona alla perfezione ..grazie a tutti per gli aiuti!

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa quale era l'errore (curiosa ora)

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.