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

    [Java] prendere un valore numerico da un JTextField

    Salve a tutti, ho un problema che per molti di voi sarà banale. Ho un campo dell'interfaccia swing in cui devo aggiungere un valore numerico. Quando lo raccolto uso NONMECAMPO.getText() e provo a fare una conversione col parse.Int() però mi dà una ClassCastException come errore a run time. Come posso fare a fare una cosa del genere?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Posta codice...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    codice:
    				/* ### CONTROLLO ERRORI ### */		
    		String strErrMsg="";
    		String strRiver=getNomeFiume().getText().trim();
    		String strLivGuard=getLivGuard().getText().trim(); 
    		String strSorgente=getSorgente().getText().trim();
    		String strFoce=getFoce().getText().trim();
    		String strContinente= (String ) getContinenti().getSelectedItem() ;
    		Hashtable htContinenti=getHTContinenti();
    		
    		int iLivGuard=0;
    		int iContinenteId=0;
    		
    		String strContinenteId =(String) htContinenti.get(strContinente);
    		iContinenteId = Integer.parseInt(strContinenteId);
    		
    		String strValidateRiverResponse=validateRiverName(strRiver);
    		String strValidateLivGuardResponse=validateLivGuard(strLivGuard);
    		String strValidateSorgenteResponse=validateSorgente(strSorgente);
    		String strValidateFoceResponse=validateFoce(strFoce);
    
    
    		int iLivGuard=0;
    		int iContinenteId=0;
    		
    		String strContinenteId =(String) htContinenti.get(strContinente);
    		iContinenteId = Integer.parseInt(strContinenteId);
    		
    		
    		String strValidateLivGuardResponse=validateLivGuard(strLivGuard);
    		
    		
    	
    		
    		/* DA CORREGGERE */
    		if	(strValidateLivGuardResponse==null){
    			iLivGuard=Integer.parseInt(strLivGuard);
    		}else{
    		
    			strErrMsg=strErrMsg.concat(strValidateLivGuardResponse);
    		}
    /* == fin qui è main */
    
    Altro metodo
    
    	/* VALIDIAMO IL LIVELLO DI GUARDIA */
    	public String validateLivGuard(String strLivGuard){
    			String strErrMsg=null;
    			int iLivGuard=0;
    			
    			//try{
    				iLivGuard=Integer.parseInt(strLivGuard);
    				
    				if	(iLivGuard<MIN_LIVGUARD){
    					strErrMsg="Il valore del livello di guardia è troppo basso.
    ";
    				}else if(iLivGuard>MAX_LIVGUARD){
    					strErrMsg="Il valore del livello di guardia è troppo alto.
    ";
    				}
    		
    		/*	}catch(NumberFormatException nfe){
    				strErrMsg="Il valore del livello di guardia deve essere un numero.
    ";	
    			}*/
    			
    			
    			
    
    		return strErrMsg;
    	}
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  4. #4
    Ok copiando il codice ho beccato un errore!
    Ora il problema è fare in modo che l'hashtable mi restituisce l'id del continente che io prendo dalla combobox.
    Il problema è sempre una ClassCastException.
    L'hashtable e tutti i riferimenti ai vari campi sono salvati come attributi in quanto passati al costruttore e recuperati con metodi get che ho omesso.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  5. #5
    Ti dico subito che non credo l'errore sia nella ParseInt per quella se qualcosa non la digerisce ti lancia una NumberFormatException non un ClassCastException. Purtroppo il codice che hai postato (oltre ad essere formatatto in maniera pessima dai tag code non so perchè) è incompleto e quindi non posso fare delle prove.Diciamo che l'ideale sarebbe che tu scrivessi un piccolo programmino giocattolo funzionante in cui riproduci il problema e posti il codice di quello, altrimenti così al volo non ti so dire di più perchè come ti ho detto il problema non credo sia il ParseInt
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Posso anche postati tutta la classe ma il problema è che è un actionlistener di un dialog di una classe che crea un'interfaccia. Devo metterti tutte le classi?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    Originariamente inviato da Nunkij
    Posso anche postati tutta la classe ma il problema è che è un actionlistener di un dialog di una classe che crea un'interfaccia. Devo metterti tutte le classi?
    No te l'ho detto scrivi una programma giocattolo con usolo Jtextfield posizionato dove capita e cerca di riptodurre il problema, poi posti quello.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.