Tôi đang làm việc trên một giải sudoku và tôi đang cố gắng để hạn chế lượng số người dùng có thể nhập vào một tế bào cũng như CHỈ việc có thể để nhập số, hiện nay nó cũng chấp nhận thư. Tại thời điểm nó hoạt động như thế này: Nếu người dùng nhập "11125455876", nó sẽ chỉ sử dụng số cuối cùng được nhập (trong trường hợp này là "6"). Tôi muốn giới hạn số lượng người dùng có thể nhập vào một ô duy nhất thành 1 và chỉ chấp nhận số 1-9. Tôi không thực sự chắc chắn làm thế nào tôi có thể làm điều đó. Vì vậy, có lẽ nó sẽ chỉ ghi đè lên số trước đó hoặc một cái gì đó và nếu tôi bấm một phím chữ là "a" không có gì nên xảy ra.số Hạn chế đầu vào JTextField
Đây là mã của tôi:
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]);
}
}
}
Như bạn thấy Tôi hiện đang sử dụng number format
.
Sử dụng [ 'DocumentFilter'] (http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/text/DocumentFilter.html) để giới hạn đầu vào. –
@Extreme Coders Bạn có thể viết câu trả lời về cách nó trông giống như trong trường hợp của tôi? Tôi không quá quen thuộc với điều đó. Những gì cần phải được thay đổi? – Rob
http://stackoverflow.com/questions/3519151/how-to-limit-the-number-of-characters-in-jtextfield – herinkc