Maison >Java >javaDidacticiel >Pourquoi mon JFormattedTextField ré-affiche-t-il une entrée valide après une entrée invalide ?
Problème JFormattedTextField : le texte réapparaît après une entrée invalide
Dans votre code, vous utilisez JFormattedTextField dans un SudokuTextBox pour appliquer la validation. Cependant, lors de la saisie de valeurs valides puis invalides, la zone de texte s'efface, mais la valeur valide précédente réapparaît lors de la tabulation vers l'avant.
Cause et solution
Votre problème réside dans la façon dont vous effacez la zone de texte après une entrée invalide. Lorsqu'il n'est pas valide, vous définissez le texte sur "null" au lieu de la chaîne vide. Cela amène le JFormattedTextField à conserver la dernière valeur valide comme valeur par défaut, qui réapparaît lorsque le focus change.
Pour résoudre ce problème, définissez simplement le texte sur une chaîne vide après une entrée non valide :
public void keyReleased(KeyEvent e) { //... // Corrected line: if(sudoku.isValid(row, col, value)) { sudoku.set(row, col, value); } else { sudoku.set(row, col, 0); tb.setText(""); // Set to empty string, not null } //... }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!