Messaggi d'errore registrazione

di il
60 risposte

Messaggi d'errore registrazione

Buonasera ho un problema nei controlli per l'iscrizione io ho già creato un frame per i messaggi d'errore che contiene una lista ma ora il mio obbiettivo è quello di far in modo che i controlli in registrazione, un'altro frame, avvengono nella stessa frame per i messaggi di errori ho provato a fare cosi:
@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(Button_Iscriviti)) {
			String nome=textField_Nome.getText();
			String cognome=textField_Cognome.getText();
			String email=textField_Email.getText();
			String numeroTelefonico=textField_NumTelefonico.getText();
			String password=textField_Password.getText();
			String provincia=textField_Provincia.getText();
			String citta=textField_Città.getText();
			String Cap=textField_Cap.getText();
			String nomeVia=textField_NomeVia.getText();
			int numCivico;
			


			try {	
			    numCivico=Integer.parseInt(textField_N_Civico.getText().toString()); 
			     if(Controllo_NumeroCivico().equals("")) {
			    	ctrl.VisualizzazioneAvvisi("Inserisci email");
			    }
			    else {
			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
			    }
			     if(Controllo_Provincia().equals("")) {
				     ctrl.VisualizzazioneAvvisi("Inserisci Provincia");
			    }
			    else {
			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
			    }
			     if(Controllo_Cap().equals("")) {				     
			    	ctrl.VisualizzazioneAvvisi("Inserisci Cap");

			    }
			    else {
			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
			    }
			    if(ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia)==false) {
				      ctrl.VisualizzazioneAvvisi("Utente già presente");
			    }  else {
			    	  ctrl.visualizzazioneLogin();
			     }
			 } catch (NumberFormatException ae){
			      ctrl.VisualizzazioneAvvisi("Il formato di numero civico non è corretto");
			 }		
		}

	}
ma non mi funziona si apre un frame per ogni errori come posso risolvere?
Grazie

60 Risposte

  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


    non mi funziona si apre un frame per ogni errori come posso risolvere?
    Grazie
    Il codice riportato non è molto significativo .... cosa fa VisualizzazioneAvvisi ??
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


    non mi funziona si apre un frame per ogni errori come posso risolvere?
    Grazie
    Il codice riportato non è molto significativo .... cosa fa VisualizzazioneAvvisi ??
    VisualizzaAvvisi è una dialog che mostra gli errori...ho fatto così ma non funziona lo stesso:
    
    @Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource().equals(Button_Iscriviti)) {
    			String nome=textField_Nome.getText();
    			String cognome=textField_Cognome.getText();
    			String email=textField_Email.getText();
    			String numeroTelefonico=textField_NumTelefonico.getText();
    			String password=textField_Password.getText();
    			String provincia=textField_Provincia.getText();
    			String citta=textField_Città.getText();
    			String Cap=textField_Cap.getText();
    			String nomeVia=textField_NomeVia.getText();
    			int numCivico;
    			
    			ArrayList<String> errori =new ArrayList<String>();
    
    			try {	
    			    numCivico=Integer.parseInt(textField_N_Civico.getText().toString()); 
    			     if(Controllo_NumeroCivico().equals("")) {
    			    	errori.add("Inserisci email");
    			    	ctrl.VisualizzazioneAvvisi(""+errori);	 
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			     if(Controllo_Provincia().equals("")) {
    				    	errori.add("Inserisci Provincia");
    				    	ctrl.VisualizzazioneAvvisi(""+errori);
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			     if(Controllo_Cap().equals("")) {
    				    	errori.add("Inserisci Cap");
    			    	ctrl.VisualizzazioneAvvisi(""+errori);
    
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			    if(ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia)==false) {
    				      ctrl.VisualizzazioneAvvisi("Utente già presente");
    			    }  else {
    			    	  ctrl.visualizzazioneLogin();
    			     }
    			 } catch (NumberFormatException ae){
    			      ctrl.VisualizzazioneAvvisi("Il formato di numero civico non è corretto");
    			 }		
    		}
    
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


    VisualizzaAvvisi è una dialog che mostra gli errori
    Innanzitutto prima hai parlato di frame, non dialog (sono due cose concettualmente diverse). Quindi? Descrivi meglio l'obiettivo: vuoi ri-usare la stessa dialog?
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


    VisualizzaAvvisi è una dialog che mostra gli errori
    Innanzitutto prima hai parlato di frame, non dialog (sono due cose concettualmente diverse). Quindi? Descrivi meglio l'obiettivo: vuoi ri-usare la stessa dialog?
    No ho una frame con la registrazione e poi ho una dialog per gli errori
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


    No ho una frame con la registrazione e poi ho una dialog per gli errori
    Ok, questo è chiaro ma quale è il problema? Ogni volta che invochi VisualizzazioneAvvisi si apre una nuova dialog e a te non va bene?
    E ti ripeto che una dialog è una cosa diversa da un frame, quindi stiamo parlando di una dialog "modale" o non modale?

    P.S. magari mostra il codice di VisualizzazioneAvvisi ...
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


    No ho una frame con la registrazione e poi ho una dialog per gli errori
    Ok, questo è chiaro ma quale è il problema? Ogni volta che invochi VisualizzazioneAvvisi si apre una nuova dialog e a te non va bene?
    E ti ripeto che una dialog è una cosa diversa da un frame, quindi stiamo parlando di una dialog "modale" o non modale?

    P.S. magari mostra il codice di VisualizzazioneAvvisi ...
    Questa è la dialog di visualizzaAvvisi e si voglio una dialog ma questa dialog gli errori prima che l'utente si registri devono comparire in una sola dialog mentre come ho fatto io si aprono più dialog VisualizzaAvvisi
    
    import java.awt.BorderLayout;
    
    import javax.swing.DefaultListModel;
    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.border.EmptyBorder;
    import Classi.Controller;
    import java.awt.Color;
    import javax.swing.JList;
    
    
    import java.awt.Rectangle;
    import java.util.ArrayList;
    
    
    public class VisualizzazioneAvvisi extends JDialog {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    
    	private JPanel contentPanel = new JPanel();
    
    	private Controller ctrl;
    	
    	
    	public VisualizzazioneAvvisi(Controller ctrl,String... stringErrore) {
    		setBounds(new Rectangle(0, 13, 0, 0));
    		setResizable(false);
    		setForeground(new Color(255, 165, 0));
    		setBackground(new Color(255, 165, 0));
    		setBounds(100, 100, 329, 219);
    		getContentPane().setLayout(new BorderLayout());
    		contentPanel.setBackground(new Color(255, 165, 0));
    		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
    		getContentPane().add(contentPanel, BorderLayout.CENTER);
    		contentPanel.setLayout(null);
    		DefaultListModel<String>  defaultListModel = new DefaultListModel<String>();
    		JList<String> listaErrori = new JList<>(defaultListModel);
    		listaErrori.setBackground(Color.ORANGE);
    		getContentPane().add(new JScrollPane(listaErrori));
    		for(String errore: stringErrore) {
    			defaultListModel.addElement(errore);
    		}
    		this.ctrl=ctrl;
    		this.pack();
    	}
    
    	public VisualizzazioneAvvisi(Controller ctrl, ArrayList<String> stringErrore) {
    		setBounds(new Rectangle(0, 13, 0, 0));
    		setResizable(false);
    		setForeground(new Color(255, 165, 0));
    		setBackground(new Color(255, 165, 0));
    		setBounds(100, 100, 329, 219);
    		getContentPane().setLayout(new BorderLayout());
    		contentPanel.setBackground(new Color(255, 165, 0));
    		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
    		getContentPane().add(contentPanel, BorderLayout.CENTER);
    		contentPanel.setLayout(null);
    		DefaultListModel<String>  defaultListModel = new DefaultListModel<String>();
    		JList<String> listaErrori = new JList<>(defaultListModel);
    		getContentPane().add(listaErrori);
    		for(String errore: stringErrore) {
    			defaultListModel.addElement(errore);
    		}
    		this.ctrl=ctrl;
    		this.pack();
    	}
    }
    
    Cosi mi da più dialog con più errori
    @Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource().equals(Button_Iscriviti)) {
    			String nome=textField_Nome.getText();
    			String cognome=textField_Cognome.getText();
    			String email=textField_Email.getText();
    			String numeroTelefonico=textField_NumTelefonico.getText();
    			String password=textField_Password.getText();
    			String provincia=textField_Provincia.getText();
    			String citta=textField_Città.getText();
    			String Cap=textField_Cap.getText();
    			String nomeVia=textField_NomeVia.getText();
    			int numCivico;
    			
    			ArrayList<String> errori =new ArrayList<String>();
    
    			try {	
    			    numCivico=Integer.parseInt(textField_N_Civico.getText().toString()); 
    			     if(Controllo_NumeroCivico().equals("")) {
    			    	errori.add("Inserisci email");
    			    	ctrl.VisualizzazioneAvvisi(""+errori);	 
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			     if(Controllo_Provincia().equals("")) {
    				    	errori.add("Inserisci Provincia");
    				    	ctrl.VisualizzazioneAvvisi(""+errori);
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			     if(Controllo_Cap().equals("")) {
    				    	errori.add("Inserisci Cap");
    			    	ctrl.VisualizzazioneAvvisi(""+errori);
    
    			    }
    			    else {
    			    	ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia);
    			    }
    			    if(ctrl.effettuaRegistrazione(nome, cognome, email, password,  numeroTelefonico, nomeVia, numCivico, Cap, citta, provincia)==false) {
    				      ctrl.VisualizzazioneAvvisi("Utente già presente");
    			    }  else {
    			    	  ctrl.visualizzazioneLogin();
    			     }
    			 } catch (NumberFormatException ae){
    			      ctrl.VisualizzazioneAvvisi("Il formato di numero civico non è corretto");
    			 }		
    		}
    
    	}
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


    Questa è la dialog di visualizzaAvvisi
    A parte la grossa (ed evidente) duplicazione di codice tra i due costruttori .... io intendevo vedere il metodo ctrl.VisualizzazioneAvvisi( ... ), non tanto la classe della dialog.

    P.S. non va bene mettere nomi di metodi uguali a nomi dei tipi!
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


    Questa è la dialog di visualizzaAvvisi
    A parte la grossa (ed evidente) duplicazione di codice tra i due costruttori .... io intendevo vedere il metodo ctrl.VisualizzazioneAvvisi( ... ), non tanto la classe della dialog.

    P.S. non va bene mettere nomi di metodi uguali a nomi dei tipi!
    A scusa allora questo:
      public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        }
    
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


      public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        }
    
    E' abbastanza ovvio che così crea una nuova dialog ad ogni invocazione di questo metodo. Visto che dialogErrore è un attributo del tuo controller, la soluzione è semplice: se dialogErrore è ancora null, crei la dialog. Se non null, RIusi quella dialog.
    Ma è anche comprensibile il fatto che devi trovare un altro modo per passare l'errore alla dialog (se già creata) che non sia dal costruttore. Ragionaci e fai la cosa "furba" ...

    P.S. la tua dialog, per come è costruita, è modeless (non "modale"), che è funzionalmente molto più simile ad un comune frame.
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


      public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        }
    
    E' abbastanza ovvio che così crea una nuova dialog ad ogni invocazione di questo metodo. Visto che dialogErrore è un attributo del tuo controller, la soluzione è semplice: se dialogErrore è ancora null, crei la dialog. Se non null, RIusi quella dialog.
    Ma è anche comprensibile il fatto che devi trovare un altro modo per passare l'errore alla dialog (se già creata) che non sia dal costruttore. Ragionaci e fai la cosa "furba" ...

    P.S. la tua dialog, per come è costruita, è modeless (non "modale"), che è funzionalmente molto più simile ad un comune frame.
    ok quindi così?
     public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	if(dialogErrore==null) {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        	}
        }
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


     public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	if(dialogErrore==null) {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        	}
        }
    No, per due motivi: a) se è già creata, non gli stai passando più nulla (come passi stringErroreCommesso?? ragionaci ..) e b) se per caso l'utente l'ha chiusa, come minimo andrebbe riportata "visibile".
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


     public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	if(dialogErrore==null) {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        	}
        }
    No, per due motivi: a) se è già creata, non gli stai passando più nulla (come passi stringErroreCommesso?? ragionaci ..) e b) se per caso l'utente l'ha chiusa, come minimo andrebbe riportata "visibile".
    Così?
     
     public void VisualizzazioneAvvisi(String stringErroreCommesso) 
        {
        	if(dialogErrore==null) {
        	dialogErrore = new VisualizzazioneAvvisi(this,stringErroreCommesso);
        	dialogErrore.setVisible(true);
        	dialogErrore.setBounds(0, 0,360, 150);
    		dialogErrore.setLocationRelativeTo(menu);
        	} else {
        	    		dialogErrore.setVisible(true);
           }
        }
  • Re: Messaggi d'errore registrazione

    saraciao ha scritto:


    Così?
    Ma hai "ragionato" su quanto ho scritto? Se è già creata, cosa fai con stringErroreCommesso ?
  • Re: Messaggi d'errore registrazione

    andbin ha scritto:


    saraciao ha scritto:


    Così?
    Ma hai "ragionato" su quanto ho scritto? Se è già creata, cosa fai con stringErroreCommesso ?
    Ci devo passare la stringa d'errore
Devi accedere o registrarti per scrivere nel forum
60 risposte