JFormattedTextField 问题:无效输入后文本重新出现
在您的代码中,您在 JFormattedTextField 内使用 JFormattedTextField 🎜>SudokuTextBox
强制验证。但是,当输入有效且随后无效的值时,文本框会被清除,但向前按 Tab 键时会重新出现之前的有效值。原因和解决方案
您的问题在于您在输入无效内容后清除文本框的方式。当无效时,您将文本设置为“null”而不是空字符串。这会导致 JFormattedTextField
保留最后一个有效值作为默认值,当焦点更改时该值会重新出现。要解决此问题,只需在无效输入后将文本设置为空字符串即可: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 } //... }
以上是为什么我的 JFormattedTextField 在输入无效内容后重新显示有效输入?的详细内容。更多信息请关注PHP中文网其他相关文章!