Bloquée la saisie d'un JTextArea
Fermé
Nanis29
Messages postés
61
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 octobre 2009
-
8 avril 2009 à 14:30
Nanis29 Messages postés 61 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 24 octobre 2009 - 9 avril 2009 à 15:28
Nanis29 Messages postés 61 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 24 octobre 2009 - 9 avril 2009 à 15:28
A voir également:
- Bloquée la saisie d'un JTextArea
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Barre des taches bloquée - Guide
- Autorisation non accordée d'activer la saisie vocale - Forum Xiaomi
- Test de recrutement opérateur de saisie ✓ - Forum Études / Formation High-Tech
- Freebox bloquee etape 6 ✓ - Forum Freebox
6 réponses
Salut,
Tu laisses l'utilisateur terminer sa saisie...
Supposons que le résultat est dans String saisie :
boolean encore = true;
// simulation de la saisie
String saisie = "1234567890abcdefghijklmnopqrstuvwxyz 1234567890abcdefghijklmnopqrstuvwxyz";
while (encore)
{
encore = false;
// ici on doit avoir la saisie
if (saisie.length() > 70)
{
System.out.println("Vous avez saisi " + saisie.length() + " caracteres\n"
+ "Vous devez saisir de nouveau 70 caracteres maximum!\n\n");
saisie = "1234567890abcdefghijklmnopqrstuvwxyz"; // pour simuler la nouvelle saisie
encore = true;
}
}
// OU BIEN ARBITRAIREMENT:
encore = true;
saisie = "1234567890abcdefghijklmnopqrstuvwxyz 1234567890abcdefghijklmnopqrstuvwxyz";
while (encore)
{
encore = false;
// ici on doit avoir la saisie
if (saisie.length() > 70)
{
System.out.println("Vous avez saisi " + saisie.length() + " caracteres\n"
+ "Votre saisie sera tronquee a 70 caracteres!\n\n");
saisie = saisie.substring(0, 70);
}
// MAIS JE DOUTE QUE CE SOIT LA SOLUTION
}
System.out.println("Vous avez saisi: " + saisie + "\n\n");
Ma boucle n'est pas tout a fait juste a cause de la simu de saisie car cette saisie doit etre dans la boucle...
Cordialement,
Dan
Tu laisses l'utilisateur terminer sa saisie...
Supposons que le résultat est dans String saisie :
boolean encore = true;
// simulation de la saisie
String saisie = "1234567890abcdefghijklmnopqrstuvwxyz 1234567890abcdefghijklmnopqrstuvwxyz";
while (encore)
{
encore = false;
// ici on doit avoir la saisie
if (saisie.length() > 70)
{
System.out.println("Vous avez saisi " + saisie.length() + " caracteres\n"
+ "Vous devez saisir de nouveau 70 caracteres maximum!\n\n");
saisie = "1234567890abcdefghijklmnopqrstuvwxyz"; // pour simuler la nouvelle saisie
encore = true;
}
}
// OU BIEN ARBITRAIREMENT:
encore = true;
saisie = "1234567890abcdefghijklmnopqrstuvwxyz 1234567890abcdefghijklmnopqrstuvwxyz";
while (encore)
{
encore = false;
// ici on doit avoir la saisie
if (saisie.length() > 70)
{
System.out.println("Vous avez saisi " + saisie.length() + " caracteres\n"
+ "Votre saisie sera tronquee a 70 caracteres!\n\n");
saisie = saisie.substring(0, 70);
}
// MAIS JE DOUTE QUE CE SOIT LA SOLUTION
}
System.out.println("Vous avez saisi: " + saisie + "\n\n");
Ma boucle n'est pas tout a fait juste a cause de la simu de saisie car cette saisie doit etre dans la boucle...
Cordialement,
Dan
Ps,
Bien entendu j'ai limité la longueur à 70 pour simplifier et ne pas avoir à définir String saisie = "qwertyuiop....plus de 500 caractères.....";
Dan
Bien entendu j'ai limité la longueur à 70 pour simplifier et ne pas avoir à définir String saisie = "qwertyuiop....plus de 500 caractères.....";
Dan
Nanis29
Messages postés
61
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 octobre 2009
4
9 avril 2009 à 09:08
9 avril 2009 à 09:08
Oui ben du coup c'est à peu près ce que j'ai fait, j'affiche le nombre de caractères restant au fur et a mesure de la saisie et je lui affiche un message lorsqu'il arrive à 0, pour le prévenir que le texte sera tronqué, en faisant un substract par la suite
Par contre j'ai un petit soucis, c'est que mon message l'avertissant qu'il est à 0 caractère s'affiche 2 fois de rang, et après il peut recommencer à saisir si il veut.
Tu saurai pourquoi il s'affiche 2 fois de suite ?
le code :
longueurCom = txtCommentaires.getText().length();
carRestant = (500 - longueurCom);
lblCarRestant.setText(String.valueOf(carRestant)+"/500");
if (carRestant <= 10){
lblCarRestant.setForeground(Color.red);
}else {
lblCarRestant.setForeground(Color.black);
}
if (txtCommentaires.getText().length() < 500) {
JOptionPane.showMessageDialog(this, "Comentaires trop long " +
"(max. 500 caractères)", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
comment.setForeground(Color.red);
}
Par contre j'ai un petit soucis, c'est que mon message l'avertissant qu'il est à 0 caractère s'affiche 2 fois de rang, et après il peut recommencer à saisir si il veut.
Tu saurai pourquoi il s'affiche 2 fois de suite ?
le code :
longueurCom = txtCommentaires.getText().length();
carRestant = (500 - longueurCom);
lblCarRestant.setText(String.valueOf(carRestant)+"/500");
if (carRestant <= 10){
lblCarRestant.setForeground(Color.red);
}else {
lblCarRestant.setForeground(Color.black);
}
if (txtCommentaires.getText().length() < 500) {
JOptionPane.showMessageDialog(this, "Comentaires trop long " +
"(max. 500 caractères)", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
comment.setForeground(Color.red);
}
Nanis29
Messages postés
61
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 octobre 2009
4
9 avril 2009 à 09:17
9 avril 2009 à 09:17
Me suis trompée je t'ai mis le code actuel ^^
longueurCom = txtCommentaires.getText().length();
carRestant = (500 - longueurCom);
lblCarRestant.setText(String.valueOf(carRestant)+"/500");
if (carRestant <= 10){
lblCarRestant.setForeground(Color.red);
}else if (carRestant ==0){
JOptionPane.showMessageDialog(this, "caractères maximum atteint, le reste de la saisie sera tronquée lors de l'enregistrement", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
}
}else {
lblCarRestant.setForeground(Color.black);
}
Voila celui de départ, ou j'affiche un message lorsqu"il arrive à 0 caractère. Le message s'affiche 2 fois de suite et ensuite il peut continuer sa sasie, je comprend pas pourquoi.
De plus, si il fait un copié collé, et que le nombre de caractères dépasse le 0, alors aucun message ne s'affiche...
longueurCom = txtCommentaires.getText().length();
carRestant = (500 - longueurCom);
lblCarRestant.setText(String.valueOf(carRestant)+"/500");
if (carRestant <= 10){
lblCarRestant.setForeground(Color.red);
}else if (carRestant ==0){
JOptionPane.showMessageDialog(this, "caractères maximum atteint, le reste de la saisie sera tronquée lors de l'enregistrement", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
}
}else {
lblCarRestant.setForeground(Color.black);
}
Voila celui de départ, ou j'affiche un message lorsqu"il arrive à 0 caractère. Le message s'affiche 2 fois de suite et ensuite il peut continuer sa sasie, je comprend pas pourquoi.
De plus, si il fait un copié collé, et que le nombre de caractères dépasse le 0, alors aucun message ne s'affiche...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je n'ai pas suffisamment de code pour voir pourquoi le message d'erreur s'affiche 2 fois.
C'est peut-être ce this, il faudrait essayer en le remplacant par null, mais j'avoue que ce n'est pas certain...
JOptionPane.showMessageDialog(this, "caractères maximum atteint, le reste de la saisie sera tronqué lors de l'enregistrement", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
Quant au copier coller, en testant if (longueurCom > 500) après la validation (touche Intro du clavier, ou click d'un bouton, je ne sais pas comment c'est programmé...)
OU peut-être tout bonnement en entrant un espace (ou un complément au commentaire "collé") après avoir collé et en testant normalement comme si on avait tout saisi.
Remarque:
pour éviter que la saisie soit possible après le message d'erreur: ajouter nom_JTextArea.setEditable(false);
désolé j'ai oublié son nom!
Cordialement,
Dan
Je n'ai pas suffisamment de code pour voir pourquoi le message d'erreur s'affiche 2 fois.
C'est peut-être ce this, il faudrait essayer en le remplacant par null, mais j'avoue que ce n'est pas certain...
JOptionPane.showMessageDialog(this, "caractères maximum atteint, le reste de la saisie sera tronqué lors de l'enregistrement", "Erreur commentaires",
JOptionPane.ERROR_MESSAGE);
Quant au copier coller, en testant if (longueurCom > 500) après la validation (touche Intro du clavier, ou click d'un bouton, je ne sais pas comment c'est programmé...)
OU peut-être tout bonnement en entrant un espace (ou un complément au commentaire "collé") après avoir collé et en testant normalement comme si on avait tout saisi.
Remarque:
pour éviter que la saisie soit possible après le message d'erreur: ajouter nom_JTextArea.setEditable(false);
désolé j'ai oublié son nom!
Cordialement,
Dan
Nanis29
Messages postés
61
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 octobre 2009
4
9 avril 2009 à 15:28
9 avril 2009 à 15:28
Merci pour ton aide ;)
Du coup je lui affiche un message, et je tronque
Bonne journée à toi :)
Du coup je lui affiche un message, et je tronque
Bonne journée à toi :)