Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163

    PROBLEMA posizione if e CONTROLLI

    salve ragazzi!!! avrei un problema con le if relative ad alcuni controllli!
    quando mando in esecuzione il codice, relativo al modulo di registrazione, dovrei controllare che nel caso in cui non vengano riempite le textfield esca un messaggio di errore"rienmpi tutti i campi", nel caso in cui venga inserita una mail sbagliata esca l'errore relativo e nel caso in cui la password nn sia di 5 caratteri venga segnalato, tutto cio' pero' dovrebbe bloccare il metodo gestionearchivio, senza registrare i dati!!!

    sicuramente avro' sbagliato qlk posizione o qlk if ... aiutatemi!!!!


    codice:
    clicca.addActionListener(new ActionListener(){
    @SuppressWarnings("deprecation")
    public void actionPerformed(ActionEvent e){ 
    String mail = TextEmail.getText();
    		
    								
    ControlManager cm = new ControlManager();
    							
    								
    if(TextNominativo.getText().equals("") | TextUsername.getText().equals("")| jPasswordField1.getText().equals("")	| TextTelefono.getText().equals("")| TextFax.getText().equals("")| TextTipo_Utente.getText().equals("")| TextEmail.getText().equals("")| TextDipartimento.getText().equals("")) { 
    						        cm.MessaggioRegistrazioneTuttiDati();
    						
    if((jPasswordField1.getText().length() > 5 )| (jPasswordField1.getText().length() < 5)){
    cm.MessaggioPassword5();
    							 
    								
    if(mail.matches(espressione)){ 
        //...email valida 
    }else{ 
    									     cm.MessaggioMailErrata();//...email incorretta 
    }
    						
    try{							
    									
    gestionearchivio(e);
    } catch SQLException e1) {
    									// TODO Auto-generated catch block
    										e1.printStackTrace();
    									} catch (ClassNotFoundException e1) {
    										// TODO Auto-generated catch block
    										e1.printStackTrace();
    									}
    									
    									cm.MessaggioRegistrazione();
    							
    		}}}}

  2. #2
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163

    ho apportato qlk modifica al codice

    ma in ogni caso salva i dati


    codice:
    	clicca.addActionListener(new ActionListener(){
    						@SuppressWarnings("deprecation")
    						public void actionPerformed(ActionEvent e){ 
    							String mail = TextEmail.getText();
    							
    								
    								ControlManager cm = new ControlManager();
    								
    								
    								if(TextNominativo.getText().equals("") | TextUsername.getText().equals("")| jPasswordField1.getText().equals("")	| TextTelefono.getText().equals("")| TextFax.getText().equals("")| TextTipo_Utente.getText().equals("")| TextEmail.getText().equals("")| TextDipartimento.getText().equals("")) { 
    						        cm.MessaggioRegistrazioneTuttiDati();
    								}else{									
    								
    								if((jPasswordField1.getText().length() > 5 )| (jPasswordField1.getText().length() < 5)){
    								cm.MessaggioPassword5();
    										
    								}else{						 
    								
    								if(mail.matches(espressione)){ 
    										    //...email valida 
    								}else{ 
    										     cm.MessaggioMailErrata();//...email incorretta 
    										
    								}
    												
    								
    								
    										try {
    											gestionearchivio(e);
    										} catch (SQLException e1) {
    											// TODO Auto-generated catch block
    											e1.printStackTrace();
    										} catch (ClassNotFoundException e1) {
    											// TODO Auto-generated catch block
    											e1.printStackTrace();
    										}
    									}
    									
    									cm.MessaggioRegistrazione();
    							
    									}}} 
    					
    								);

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    l'indentazione nn è una delle migliori ma cmq penso vada meglio con ||(OR logico)
    invece di |(operatore bit a bit)
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    ho cambiato nei controlli l'or ... ma nn è qll il problema ...



    in pratica ora mi fa i controlli ma cmq mi registra ... guardate il codice che ho inserito sopra!!! pleaseeeeeeeeeeeeeeeee

  5. #5
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da 1sirena
    ho cambiato nei controlli l'or ... ma nn è qll il problema ...



    in pratica ora mi fa i controlli ma cmq mi registra ... guardate il codice che ho inserito sopra!!! pleaseeeeeeeeeeeeeeeee
    beh nn basta che controlli e invii un messaggio devi anche impedire che venga effettuata la registrazione ad esempio puoi utilizzare una variabile booleana che quando è a true indica che è comparso il messaggio e che quindi non deve registrare
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  6. #6
    Innanzitutto per il controllo della password dovendo controllare che la lunghezza NON sia uguale 5 è inutile fare due controlli per vedere se è maggiore o minore. Basta vedere semplicamente se è diverso:

    Codice PHP:
    if(jPasswordField1.getText().length() != )){
         
    cm.MessaggioPassword5();

    Un controllo in meno fa sempre bene


    Poi come già suggerito sia da me nell'altro post che da Metflar devi usare || e non | (il fatto che ti funzioni non vuol dire nulla...).

    Infine ogni volta che si genera un errore devi "tenere traccia" del fatto che il controllo è fallito. Come già suggerito ti basta una variabile booleana da settare a false. Il salvataggio avverrà poi solo se questa variabile è true:

    Codice PHP:
    public void actionPerformed(ActionEvent e){
         
    boolean controllo true;
         
    String mail TextEmail.getText();
         
    ControlManager cm = new ControlManager();
         if(
    TextNominativo.getText().equals("") || TextUsername.getText().equals("")|| jPasswordField1.getText().equals("")    || TextTelefono.getText().equals("")|| TextFax.getText().equals("")|| TextTipo_Utente.getText().equals("")|| TextEmail.getText().equals("")|| TextDipartimento.getText().equals("")) {
              
    cm.MessaggioRegistrazioneTuttiDati();
              
    controllo false;
         }else{
              if(
    jPasswordField1.getText().length() != 5){
                   
    cm.MessaggioPassword5();
                   
    controllo false;
              }else{
                   
    //visto che ti serve sapere SOLO se è errata l'email, puoi cambiare il codice così
                   
    if(!mail.matches(espressione)){ 
                        
    cm.MessaggioMailErrata();
                        
    controllo false;
                   }
              }
         }


         if(
    controllo){      
              try {
                   
    gestionearchivio(e);
              } catch (
    SQLException e1) {
                   
    e1.printStackTrace();
              } catch (
    ClassNotFoundException e1) {
                   
    e1.printStackTrace();
              }
          
              
    cm.MessaggioRegistrazione();
         } 
    ); 
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    Rave!! pardonne moi ... ma se volessi implementare una classe che si occupa dei controlli sulle stringhe inserite dall'utente nelle textfield, come per esempio qst controllo che ci hai risolto tu di un indirizzo e-mail come potremmo fare???


    noi per ora siamo riuscite a creare solo una classe dalla quale andiamo a richiamare i messaggi :

    codice:
    package Schedule.DB;
    
    import javax.swing.JOptionPane;
    
    
    
    public class ControlManager {
    
    	
    	
    	
    	@SuppressWarnings({ "deprecation", "static-access" })
    	public void MessaggioErroreInserimentoLogin(){
    		
    		JOptionPane.showMessageDialog(null, "Inserire Username e Password","Login", JOptionPane.ERROR_MESSAGE); 
            	
    	}
    	
    
    public void MessaggioErroreLogin(){
    		
    	JOptionPane.showMessageDialog(null, "Riprova, hai inserito delle credenziali errate","Login", JOptionPane.ERROR_MESSAGE);        	
    	}

    aiutaci!!!!!!!!! per favore!!!

  8. #8
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    crei un metodo per fare il controllo delle stringhe a cui gli passi le suddette stringhe e poi a seconda del caso chiami il metodo del messaggio di errore
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  9. #9
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    per il controllo della "sintassi"
    di un numero di telefono

    (esempio 080-52792 oppure 080/52692)

    come si fa???
    abbiamo provato cn qst:
    public String numeri ="^[0-9]*([/-])*[0-9]$";



    ma nn funziona ;(

  10. #10
    Allora, io sposterei tutti i controlli all'interno di ControlManager, creando dei metodi appositi:

    1) un metodo controllaDatiVuoti(String[] dati) che riceve in ingresso un array con tutte le stringhe da controllare. Se almeno una di queste stringhe è vuota, restituisce false, altrimenti restituisce true;

    2) un metodo controllaPassword(String p) che verifica la correttezza della lunghezza

    3) un metodo controllaEmail(String email) che verifica la correttezza dell'email.


    Codice PHP:
    package Schedule.DB;

    import javax.swing.JOptionPane;

    public class 
    ControlManager {

         public 
    boolean controllaDatiVuoti(String[] dati){
              
    boolean ret true;
              for(
    int i=0;dati.length;i++){
                   if(
    dati[i].equals("")){
                        
    ret false;
                        
    JOptionPane.showMessageDialog(null"Tutti i dati sono obbligatori",""JOptionPane.ERROR_MESSAGE);
                        
    //ho trovato almeno un dato vuoto
                        //quindi è inutile continuare e interrompo il ciclo for
                       
    break;
                   }
              }
              return 
    ret;
         }
         
         public 
    boolean controllaPassword(String p){
              if(
    p.length()!=5){
                   
    JOptionPane.showMessageDialog(null"Lunghezza password errata","",JOptionPane.ERROR_MESSAGE);
                   return 
    false;
              }else
                   return 
    true;
         }

         public 
    boolean controllaEmail(String email){
              
    String espressione "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$"
              if(
    email.matches(espressione)){ 
                   return 
    true;
              else{
                   
    JOptionPane.showMessageDialog(null"Email non valida",""JOptionPane.ERROR_MESSAGE);
                   return 
    false;
              }
         }

         public 
    String MessaggioRegistrazione(){
             
    //...il codice che hai già scritto e che io non conosco...
         
    }



    Così facendo, il tuo metodo actionPerformed diventerebbe:

    Codice PHP:
    public void actionPerformed(ActionEvent e){ 
         
    boolean controllo true
         
    String[] dati = {TextNominativo.getText(),TextUsername.getText(),jPasswordField1.getText(),TextTelefono.getText(), TextFax.getText(),TextTipo_Utente.getText(),TextEmail.getText(),TextDipartimento.getText()}; 


         
    ControlManager cm = new ControlManager(); 
         
    controllo cm.controllaDatiVuoti(dati);
         
    //se il primo controllo è andato a buon fine, continuo con gli altri
         
    if(controllo){
              
    controllo cm.controllaPassword(jPasswordField1.getText());
              if(
    controllo){
                   
    controllo cm.controllaEmail(TextEmail.getText());
                   if(
    controllo){
                        
    //tutti i controlli sono andati a buon fine;
                        
    try { 
                             
    gestionearchivio(e); 
                        } catch (
    SQLException e1) { 
                             
    e1.printStackTrace(); 
                        } catch (
    ClassNotFoundException e1) { 
                             
    e1.printStackTrace(); 
                        } 
           
                        
    cm.MessaggioRegistrazione(); 
                   } 
              }
         }

    ); 
    Al mio segnale... scatenate l'inferno!

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.