Salve forumiani! Sono nuovo di questo forum e anche molto fresco riguardante la programmazione.
Sto cercando di creare un'applicazione che possa "loggare" un utente usando JFrame, JPane e JOptionPane, vi consiglio di copiare e incollare perché parlerò per righe.
Nella prima parte (rig. 1 - 40) creo tanti utenti per provare le funzioni successive.
Nella seconda parte (rig. 41 - 45) chiedo all'utente se è già registrato o meno.
Se l'utente è già registrato anche se metto email e password corrette non mi entra mai nell'if rig. 47.
Se l'utente è nuovo mi entra sempre nell'else rig. 58.
Non capisco dove sta l'inghippo!

codice:
package applicazione;import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Main {
	public static void main(String[] args) {
		JFrame app = new JFrame ("Applicazione di Alessandro");
		JPanel background = new JPanel();
		background.setBackground(Color.DARK_GRAY);
		app.add(background);
		app.setSize(500, 500);
		app.setVisible(true);
		Applicazione utenti = new Applicazione();
		


		String email;
		String password;
		Utente u1 = new Utente ("vincenzo@gmail.com" , "asdfghjkl");
		Utente u2 = new Utente ("alessandro@gmail.com" , "abcdefg");
		Utente u3 = new Utente ("francesco@gmail.com" , "password");
		Utente u4 = new Utente ("nicola@gmail.com" , "alicebob");
		Utente u5 = new Utente ("mario@gmail.com" , "marioPass");
		utenti.nuovoUtente(u1);
		utenti.nuovoUtente(u2);
		utenti.nuovoUtente(u3);
		utenti.nuovoUtente(u4);
		utenti.nuovoUtente(u5);
		u1.setNicknameUtente("Vinc99");
		u2.setNicknameUtente("Ale38");
		u3.setNicknameUtente("Frank");
		u4.setNicknameUtente("Nico");
		u5.setNicknameUtente("Rossi");
		
		String nickname;
		boolean login = false;
		int scelta;
		Utente utente = new Utente();
		
		while(!login) {
			scelta = JOptionPane.showConfirmDialog(background, "Sei registrato?");
			email = JOptionPane.showInputDialog(background, "Inserisci email", "@gmail.com");
			password = JOptionPane.showInputDialog(background, "Password: ");
			utente.setEmailUtente(email);
			utente.setPasswordUtente(password);
			if(scelta == JOptionPane.YES_OPTION) { //Sign in
				if(utenti.cercaUtente(utente) && utenti.password(utente)) { //Email corretta
					JOptionPane.showMessageDialog(background, "Utente trovato!", "Caricamento completato", JOptionPane.INFORMATION_MESSAGE);
					login = true;
					break;
				}
				JOptionPane.showMessageDialog(background, "Questo account non esiste!", "Caricamento errato", JOptionPane.ERROR_MESSAGE);
			}
			else if(scelta == JOptionPane.NO_OPTION) { //Sign up
				if(utenti.cercaUtente(utente)){ //Email già esistente
					JOptionPane.showMessageDialog(background, "Questa email è stata già registrata!", "Errore!", JOptionPane.ERROR_MESSAGE);
				}
				else { //Email nuova
					nickname = JOptionPane.showInputDialog(background, "Inserisci il nickname: ");
					utente.setNicknameUtente(nickname);
					login = true;
					break;
				}
			}
		}
		
		if(login) {
			JOptionPane.showMessageDialog(background, "Loggin success!", utente.getNicknameUtente() , JOptionPane.INFORMATION_MESSAGE);
			JOptionPane.showMessageDialog(background, utente, "Scheda personale" , JOptionPane.INFORMATION_MESSAGE);
		}
		else
			JOptionPane.showMessageDialog(background, "Loggin failed!", "Errore!" , JOptionPane.ERROR_MESSAGE);
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
codice:
@Override
	public int hashCode() {
		return emailUtente.hashCode();
	}