我正在开发数独求解器,并尝试限制用户在单个单元格中输入数字的数量,同时仅允许输入数字,目前它还接受字母。目前它的工作方式是这样的:如果用户输入“11125455876”,它将只使用最后一个数字(在此例中为“6”)。我想限制用户在单个单元格中输入数字的数量为1,并且仅接受数字1-9。我不太确定如何做到这一点。因此,也许它会覆盖以前的数字,如果我按“a”之类的字母键,则不应发生任何事情。
以下是我的代码:
以下是我的代码:
public PanelGUI(int size) {
super(size);
NumberFormat f = NumberFormat.getInstance();
f.setMaximumIntegerDigits(1);
f.setMinimumIntegerDigits(0);
f.setGroupingUsed(false);
cells = new JTextField[size][size];
panel.setLayout(new GridLayout(size, size));
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
cells[i][j] = new JFormattedTextField(f);
cells[i][j].setEditable(true);
cells[i][j].setFont(boldFont);
cells[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 1,
1, Color.white));
cells[i][j].setHorizontalAlignment(JTextField.CENTER);
panel.add(cells[i][j]);
}
}
}
如您所见,我目前正在使用数字格式
。
DocumentFilter
来限制输入。 - Extreme Coders