我正在用 GUI 制作一个小数独游戏,并为 JFormattedTextFields 使用 MaskFormatter:
formatter = new MaskFormatter(s);
formatter.setValidCharacters("123456789");
但我的问题是,当窗口打开并单击其中一个字段时,无法输入内容,
它仅在第二次尝试时有效,即当我单击另一个字段然后返回第一个字段时。
是不是必须先失去焦点才能激活?
如果我的一些代码是必要的,请告诉我。
这是它的样子
编辑:问题出在这里:
if (guessMatrix[i][j] == 0) {
tfM[j][i].setBackground(Color.yellow);
tfM[j][i].setText("");
没有 setText("") 它工作得很好。