【发布时间】:2013-04-10 16:12:56
【问题描述】:
我正在开发数独求解器,我正在尝试限制用户可以输入单元格的 数字 数量以及 仅 能够输入数字,目前它也接受字母。目前它的工作方式如下:如果用户输入“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]);
}
}
}
如您所见,我目前使用的是number format。
【问题讨论】:
-
使用
DocumentFilter来限制输入。 -
@Extreme Coders 你能写一个关于我的情况应该是什么样子的答案吗?我对此不太熟悉。需要改变什么?
-
见 this 链接
标签: java swing limit jtextfield