Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [java]non permettere l'inserimento di interi negativi

    salve amici, volevo chiedervi una cosa..
    io ho questo pezzetto di codice
    codice:
    int valoreDimensione = 0;
                    try {
                    valoreDimensione = Integer.parseInt(dimensione.getText());
                    } catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null,"Devi inserire un numero intero nel campo Dimensione", 
                      "Attenzione",JOptionPane.WARNING_MESSAGE);
                  }
    che accetta solo valori interi nella mia JTextField dimensione..
    la mia domanda è forse banale ma cmq volevo si inserire numeri interi, ma numeri interi positivi, quindi non permettere che una persona mi inserisca -0, -100, e così via.
    come faccio?
    ciao belli
    http://www.emanueleferrante.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    valoreDimensione = Integer.parseInt(dimensione.getText());
    if(valoreDimensione<0) //FAI quello che ti pare.Segnalalo all'utente

  3. #3
    ciao simo, grazie per la risposta però io ho fatto quello che mi hai detto e cioè
    codice:
    int valoreDimensione = 0;
                    try {
                    valoreDimensione = Integer.parseInt(dimensione.getText());
                    
                    if (valoreDimensione<0)
                    JOptionPane.showMessageDialog(null,"Devi inserire un numero intero positivo nel campo Dimensione", 
                    "Attenzione",JOptionPane.WARNING_MESSAGE);
                    	
                    } catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null,"Devi inserire un numero intero nel campo Dimensione", 
                      "Attenzione",JOptionPane.WARNING_MESSAGE);
                  }
    ora però se io inserisco un valore negativo devo bloccare l'esecuzione del programma come nel caso in cui inserisco un carattere e l'eccezione viene raccolta dal catch..così facendo esce il messaggio che devo inserire i numeri positivi ma il programma continua la sua esecuzione..
    come faccio?
    ciao belli
    http://www.emanueleferrante.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Spiega cosa devi fare. Tu scrivi in una JTextField, poi immagino che cliccherai su un bottone e gestirai l'evento. La gestione dell'evento prevede che tu legga il valore inserito e se questo e' un intero positivo faccia qualcosa?

  5. #5
    simo io ho diversi campi JTextField da dove prelevo i dati per poi metterli in un database alla pressione del tasto "inserisci"..
    tra questi campi ci sta il fatto di gestire la dimensione che deve essere per mia scelta, un numero intero positivo.
    con quel pezzetto di codice di prima io gestisco il fatto che se qualcuno mi inserisce un carattere , avviso l'utente che deve inserire un intero.
    però non avevo considerato se uno mi inserisce un negativo e quindi glielo devo impedire..
    che dici?
    ciao belli
    http://www.emanueleferrante.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Scusa, ma se t'inserisce un carattere, il codice va comunque avanti no? Stessa cosa per il numero. Quando c'e' una condizione necessaria non verificata, fai in modo di non eseguire il resto del metodo. Qualcosa tipo:
    codice:
    int valoreDimensione = -1;
    try {
       valoreDimensione = Integer.parseInt(dimensione.getText());
    } catch(NumberFormatException e) {
       JOptionPane.showMessageDialog(null,"Devi inserire un numero intero nel campo Dimensione", 
          "Attenzione",JOptionPane.WARNING_MESSAGE);
    }
    if (valoreDimensione<0) {
       JOptionPane.showMessageDialog(null,"Devi inserire un numero intero positivo nel campo 
          Dimensione", "Attenzione",JOptionPane.WARNING_MESSAGE);
    } else {
       //Procedi con l'inserimento
    }

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da simo7784
    codice:
    int valoreDimensione = -1;
    try {
       valoreDimensione = Integer.parseInt(dimensione.getText());
    } catch(NumberFormatException e) {
       JOptionPane.showMessageDialog(null,"Devi inserire un numero intero nel campo Dimensione", 
          "Attenzione",JOptionPane.WARNING_MESSAGE);
    }
    if (valoreDimensione<0) {
       JOptionPane.showMessageDialog(null,"Devi inserire un numero intero positivo nel campo 
          Dimensione", "Attenzione",JOptionPane.WARNING_MESSAGE);
    } else {
       //Procedi con l'inserimento
    }
    No, e se sbuca fuori l'eccezione??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Scusa, ma se t'inserisce un carattere, il codice va comunque avanti no?
    non va avanti no, raccolta l'eccezione del carattere, esce il JOptionPane che mi dice che devo inserire un intero invece di un carattere e la rimango..
    non mi dire perchè ci rimango ma è così..
    infatti mi esce nella finestra msdos questa eccezione:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For inpu
    t string: "kk"
            at java.lang.NumberFormatException.forInputString(NumberFormatException.
    java:48)
            at java.lang.Integer.parseInt(Integer.java:447)
            at java.lang.Integer.parseInt(Integer.java:497)
    ecc ecc
    però non è che i dati vengono inseriti nel db e nemmeno il codice più giù continua..
    http://www.emanueleferrante.it

  9. #9
    allora posto il codice così si capisce meglio
    codice:
    if (o==inserisci) { //alla pressione del tasto inserisci
    			try{
    				//controllo che i campi non siano vuoti
    	
    				
    				if (titolo.getText().isEmpty() || autore.getText().isEmpty() || tipologia.getSelectedItem()==""
                    	|| nome_file.getText().isEmpty()||dimensione.getText().isEmpty()){
                    						JOptionPane.showMessageDialog(null,"Devi riempire i campi obbligatori *", "Attenzione",JOptionPane.INFORMATION_MESSAGE);
    				                       
    				                       } 
    				else{  //verifico che non si introduca un carattere nel campo dimensione
    					
    				int valoreDimensione = 0;
                    try {
                    valoreDimensione = Integer.parseInt(dimensione.getText());
                    	
                    } catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null,"Devi inserire un numero intero nel campo Dimensione", 
                      "Attenzione",JOptionPane.WARNING_MESSAGE);
                  }
                  
                 
    				//gestisco l'apice singolo
    				String titolo2 = titolo.getText();
                    titolo2 = titolo2.replace("'","''");
                    String autore2 = autore.getText();
                    autore2 = autore2.replace("'","''");
                    String nome_file2 = nome_file.getText();
                    nome_file2 = nome_file2.replace("'","''");
                    String idsupporto2 = idsupporto.getText();
                    idsupporto2 = idsupporto2.replace("'","''");
    				
    				
    				VoceDistributore v=new VoceDistributore(titolo2,autore2,(String)tipologia.getSelectedItem(),nome_file2,Integer.parseInt(dimensione.getText()),(String)supporto.getSelectedItem(),idsupporto2);
    
    //i dati prelevati li inserisco nel database con il metodo inserisci di un'altra classe
    			  	mt.inserisci(v);
    			  
    			  
     				JOptionPane.showMessageDialog(null,"Inserimento effettuato con successo", "Operazione Riuscita",JOptionPane.INFORMATION_MESSAGE);
    
    				reset(); //metodo di pulizia campi
    			
    			}
    			}
    			
    			
    				catch(VoceAssente e){					
    					
    					JOptionPane.showMessageDialog(null,"Oggetto già presente nel database", "Attenzione",JOptionPane.WARNING_MESSAGE);
    	                        }
    
    		    }
    
    
    		}
    io devo impedire l'inserimento di numeri interi negativi..avvisando l'utente di ciò..
    http://www.emanueleferrante.it

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    No, e se sbuca fuori l'eccezione??
    Se sbuca l'eccezione il valore rimane -1. Quindi non esegue l'inserimento, no?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.