Vérifier la saisie d'un champ java

Fermé
Jean-Marc - 24 janv. 2011 à 09:05
 Jean-Marc - 9 févr. 2011 à 23:08
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
24 janv. 2011 à 09:32
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
24 janv. 2011 à 10:10
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
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
24 janv. 2011 à 09:40
"Vérifier que c'est un String ?" Ce sera forcément un String... Oo !
0
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
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
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
24 janv. 2011 à 12:21
Simple erreur de syntaxe de ma part, il faut écrire [A-Za-z -]*
0
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
24 janv. 2011 à 12:50
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
ok je vais tester.

Je te tiens au courant.

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

A toute
0
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é
24 janv. 2011 à 15:30
Merci MrJava je vais regarder ça
0
Grefer2luxe???

Merci pour le lien!!
0
Profil bloqué
24 janv. 2011 à 15:33
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
C'est pas grave nous sommes la pour nous entre aider^^
0
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
9 févr. 2011 à 22:16
Il me semblait avoir déjà expliquer comment faire la date, mais bon redis moi où tu bloques je te (ré)expliquerai...
0
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
9 févr. 2011 à 23:05
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
okok je vais voir.je te tien au courant.

Un grand merci à toi quand même
0