Vérifier la saisie d'un champ java

Jean-Marc -  
 Jean-Marc -
Bonjour,

J'ai créé un formulaire de saisie en java.

L'insertion marche bien. Jusqu'ici tout va bien.

Maintenant, je voudrai vérifier si la nature de chaque champ est valide.

Par exemple pour remplir le nom de la personne, je voudrai vérifier que ce sont bien des lettres qui sont saisies dans le champ et non des entiers.

Je pense qu'il faut que je fasse la vérif avec un pattern mais je n'y connais rien la dedans...

Merci de m'aider les amis
A voir également:

9 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Effectivement, regardes du côté des Pattern

Exemple :
boolean b = Pattern.matches("[a-zA-Z -]*","Bernard Henri-Levy"); // true
Evidemment, tu peux affiner le Pattern selon ce que tu veux...
2
KX Messages postés 19031 Statut Modérateur 3 020
 
J'espère ne rien avoir oublié ;-)

private void btValider1_click ()
{	
	Groupe numGroupe = (Groupe) jComboBoxNumeroGroupe.getSelectedItem();
	if (numGroupe == null)
	{
		JOptionPane.showMessageDialog(null, "Sélectionnez un numéro de groupe" );
		return;
	}		

	/////////////
	
	String resp = (String) jComboBoxResponsabilité.getSelectedItem();
	if (resp == null) 
	{
		JOptionPane.showMessageDialog(null, "Sélectionnez une responsabilité" );
		return;
	}				

	/////////////
		
	String titre = (String)jComboBoxTitre.getSelectedItem();		
	if (titre == null)
	{
		JOptionPane.showMessageDialog(null, "Sélectionnez un titre de civilité" );
		return;
	}

	/////////////
	
	int numMembre;
	try
	{
		numMembre = Integer.parseInt(jTextFieldNumeroMembre.getText());
	}
	catch (NumberFormatException e)
	{
		JOptionPane.showMessageDialog(null, "Rentrez un numéro de membre" );
		return;		
	}

	/////////////
	
	String nomMembre = jTextFieldNomMembre.getText();
	if (!Pattern.matches("[A-Za-Z -]*", nomMembre)
	{
		JOptionPane.showMessageDialog(null, "Rentrez un nom de membre" );
		return;
	}

	/////////////
	
	String prenomMembre = jTextFieldPrenomMembre.getText();
	if (!Pattern.matches("[A-Za-Z -]*", prenomMembre)
	{
		JOptionPane.showMessageDialog(null, "Rentrez un prénom de membre" );
		return;
	}

	/////////////
	
	Date date;
	try
	{
		date = Date.valueOf(jTextFieldDate.getText());
	}
	catch (IllegalArgumentException e)
	{
		JOptionPane.showMessageDialog(null, "Rentrez une date au format aaaa-mm-jj" );
		return;
	}
	
	//////////////////////////////////////////

	try
	{
		Insertion.insertResa( numMembre, numGroupe.getnumGroupe(), resp, null, nomMembre, prenomMembre, titre );
	    JOptionPane.showMessageDialog(this, "Ajout effectué" , "Message", JOptionPane.INFORMATION_MESSAGE );
	}
	catch(Exception e)
	{
		e.printStackTrace();
	    JOptionPane.showMessageDialog(this, "Ajout non-effectué\n\n"+e , "Message", JOptionPane.ERROR_MESSAGE );
	    return;
	}

    //Remise des champs à vide
    jTextFieldNumeroMembre.setText("");
    jTextFieldDate.getText.setText("");
    jTextFieldNomMembre.setText("");
    jTextFieldPrenomMembre.setText("");
    jComboBoxNumeroGroupe.setSelectedIndex(-1);
    jComboBoxResponsabilité.setSelectedIndex(-1);
    jComboBoxTitre.setSelectedIndex(-1);
    
    //Grisonne les champs
    jTextFieldDate.setEnabled(false);
    jTextFieldNomMembre.setEnabled(false);
    jTextFieldNumeroMembre.setEnabled(false);
    jTextFieldPrenomMembre.setEnabled(false);
    jComboBoxNumeroGroupe.setEnabled(false);
    jComboBoxResponsabilité.setEnabled(false);
    jComboBoxTitre.setEnabled(false);
    jButtonConfirmer.setEnabled(false);
    jButtonAnnuler.setEnabled(false);
}
2
Jean-Marc
 
Merci de ta réponse très rapide....

Y'a que ça à mettre pour vérifier si c'est un string???
1
KX Messages postés 19031 Statut Modérateur 3 020
 
"Vérifier que c'est un String ?" Ce sera forcément un String... Oo !
0
Jean-Marc
 
Oui que c'est bien un string!

Par contre je ne sais pas ou le mettre dans mon code vu que je fais déja une vérif sur le champ pour voir si le champ n'est pas vide....

Désolé de te déranger mais je n'y connais pas grand chose en java, je débute....

Voici mon code pour la vérif :

 private void btValider1_click ()
	   {
		 Groupe numGroupe = (Groupe)jComboBoxNumeroGroupe.getSelectedItem();
		 String resp = (String)jComboBoxResponsabilité.getSelectedItem();
		 String titre = (String)jComboBoxTitre.getSelectedItem();
		 int numMembre = Integer.parseInt( jTextFieldNumeroMembre.getText());
		 String nomMembre = jTextFieldNomMembre.getText();
		 String prenomMembre = jTextFieldPrenomMembre.getText();
			
		 
	       if (numGroupe == null)
			{
				JOptionPane.showMessageDialog(null, "Sélectionnez un numéro de groupe" );
				return;
			}			
			 
			else if (resp == null) 
				{
					JOptionPane.showMessageDialog(null, "Sélectionnez une responsabilité" );
					return;
				}				
				
				 else if (titre == null)
					{
						JOptionPane.showMessageDialog(null, "Sélectionnez un titre de civilité" );
						return;
					}

	       				/*else if (numMembre.equals(""))
								{
									JOptionPane.showMessageDialog(null, "Rentrez un nom de membre" );
									return;
								}*/

		
				 				else if (nomMembre.equals(""))
				 					{
				 						JOptionPane.showMessageDialog(null, "Rentrez un nom de membre" );
				 						return;
				 					}
			
				 						else if (prenomMembre.equals(""))
				 						{
				 							JOptionPane.showMessageDialog(null, "Rentrez un prénom de membre" );
				 							return;
				 						}
			
		 //Date date = jTextFieldDate.getText();

		 try
	       {
	           Insertion.insertResa( numMembre, numGroupe.getnumGroupe(), resp, null, nomMembre, prenomMembre, titre );
	           JOptionPane.showMessageDialog(this, "Ajout effectuée" , "Message", 
	           								JOptionPane.INFORMATION_MESSAGE );
	       }
	       catch(Exception e)
	       {
	          System.out.println("Exception " + e.getMessage());
	          JOptionPane.showMessageDialog(this, "Ajout NON effectuée" , "Message", 
	       		   						  JOptionPane.INFORMATION_MESSAGE );
	       }       
	       //Remise des champs à vide
	       jTextFieldNumeroMembre.setText("");
	       //jTextFieldDate.getText.setText("");
	       jTextFieldNomMembre.setText("");
	       jTextFieldPrenomMembre.setText("");
	       jComboBoxNumeroGroupe.setSelectedIndex(-1);
	       jComboBoxResponsabilité.setSelectedIndex(-1);
	       jComboBoxTitre.setSelectedIndex(-1);
	       //Grissonne les champs
	       jTextFieldDate.setEnabled(false);
		   jTextFieldNomMembre.setEnabled(false);
		   jTextFieldNumeroMembre.setEnabled(false);
		   jTextFieldPrenomMembre.setEnabled(false);
		   jComboBoxNumeroGroupe.setEnabled(false);
	       jComboBoxResponsabilité.setEnabled(false);
		   jComboBoxTitre.setEnabled(false);
		   jButtonConfirmer.setEnabled(false);
		   jButtonAnnuler.setEnabled(false);
}
0
Jean-Marc
 
J'ai cours d'anglais t'es la à partir de 13h??

En tout cas un grand grand merci pour ton code je vais le tester et je te tien au courant ;)

Ça fais plaisir des gens comme toi...

Encore merci à toute à l'heure
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jean-Marc
 
J'ai essayé le code et j'ai une erreur au niveau du pattern. Pourtant je l'ai importé.

Voici l'erreur lorsque j'essaye d'ajouter un membre :

Exception in thread "AWT-EventQueue-1" java.util.regex.PatternSyntaxException: Illegal character range near index 6
[A-Za-Z -]*
^

MERCI
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Simple erreur de syntaxe de ma part, il faut écrire [A-Za-z -]*
0
Jean-Marc
 
ok je vais tester par contre pour la date dans la syntaxe :

date = Date.valueOf(jTextFieldDate.getText());

il me souligne valueOf en rouge et je n'arrive pas a remédier au problème!!!

Merci KX
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Tu as dû faire import java.util.Date or moi j'ai utilisé java.sql.Date.
En fait la plupart des méthodes de ces deux classes sont dépréciées, l'idéal serait d'utiliser java.text.SimpleDateFormat et la méthode parse
0
Jean-Marc
 
ok je vais tester.

Je te tiens au courant.

Merci de ton aide très précieuse KX.

A toute
0
Jean-Marc
 
Merci pour le pattern pas d'erreur a déplorer.

Maintenant pour la date, j'ai beau rentrer des dates (12/01/1988 ou 1988-01-12) il me met que le format n'est pas bon!!pourquoi???

Est ce que cela peut être du à mon format de date défini dans ma base de données???

Défini comme ça dans ma base de données : "DATENAISSANCEMEMBRE" DATE,

Merci
0
Profil bloqué
 
Merci MrJava je vais regarder ça
0
Jean-Marc
 
Grefer2luxe???

Merci pour le lien!!
0
Profil bloqué
 
Oups désolé je me suis trompé de message!Moi aussi j'ai un problème en java c'est pour ça!!rien de grave.

Bonne chance pour ton problème
0
Jean-Marc
 
C'est pas grave nous sommes la pour nous entre aider^^
0
Jean-Marc
 
Je me permet de relancer ce sujet vu que j'ai trouver d'ou venait l'erreur de la date mais je ne sais comment régler le problème.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Il me semblait avoir déjà expliquer comment faire la date, mais bon redis moi où tu bloques je te (ré)expliquerai...
0
Jean-Marc
 
Concernant la date, j'ai trouvé quelque chose de fructueux^^.

En effet, dans mon fichier d'insertion de mes données dans la base de données, j'ai remarqué que les dates étaient insérées comme ceci :

Insert into MEMBRE (NUMPERSONNE,NUMGROUPE,RESPONSABILITEMEMBRE,DATENAISSANCEMEMBRE,NOMPERSONNE,PRENOMPERSONNE,TITRECIVILITE) values (6,12,'Maquilleuse ',to_timestamp('10/12/90 00:00:00,000000000','DD/MM/RR HH24:MI:SS,FF'),'Le Joliff ','Noelie ','Mlle');

Insert into MEMBRE (NUMPERSONNE,NUMGROUPE,RESPONSABILITEMEMBRE,DATENAISSANCEMEMBRE,NOMPERSONNE,PRENOMPERSONNE,TITRECIVILITE) values (8,6,'Chauffeur ',to_timestamp('21/05/88 00:00:00,000000000','DD/MM/RR HH24:MI:SS,FF'),'Letty ','Nicolas ','Mr');

Tu peux voir qu'il y a 00:00:00,000000000 rajouté dans la date alors que moi je ne souhaite insérer que la date c'est à dire to_timestamp('21/05/88','DD/MM/RR').

Et je pense donc qu'il faudrait remplacer le to_timestamp par to_date. Je me trompe???

Et voila pourquoi ça affiché tous ces zéros lors de l'éditiond e al date de naissance du membre.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Euh là c'est un problème de base de données, et je suis incompétent...
Si ton problème avait été dans la partie Java (remplir les zéros par autre chose) j'aurais pu t'aider, mais là non...
0
Jean-Marc
 
okok je vais voir.je te tien au courant.

Un grand merci à toi quand même
0