JFormattedTextField-Problem: Text erscheint nach ungültiger Eingabe erneut
In Ihrem Code verwenden Sie JFormattedTextField innerhalb eines SudokuTextBox um die Validierung zu erzwingen. Wenn Sie jedoch gültige und anschließend ungültige Werte eingeben, wird das Textfeld gelöscht, aber der vorherige gültige Wert wird beim Vorwärts-Tab wieder angezeigt.
Ursache und Lösung
Ihr Problem liegt in der Art und Weise, wie Sie das Textfeld nach einer ungültigen Eingabe leeren. Wenn er ungültig ist, setzen Sie den Text auf „null“ statt auf die leere Zeichenfolge. Dadurch behält das JFormattedTextField den letzten gültigen Wert als Standardwert bei, der wieder angezeigt wird, wenn sich der Fokus ändert.
Um dieses Problem zu beheben, setzen Sie den Text nach einem ungültigen Eintrag einfach auf eine leere Zeichenfolge:
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 } //... }
Das obige ist der detaillierte Inhalt vonWarum zeigt mein JFormattedTextField nach einer ungültigen Eingabe erneut gültige Eingaben an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!