因此,我完成了Sudoku求解器的制作,但我想对其进行改进。为此,我需要从betterJTextField
到达documentListener
。我正在使用documentListener
从betterJTextFields
实时读取,我遇到的问题是insertUpdate(DocumentEvent e)
中。
我需要到达betterJTextfield
发生在其中的DocumentEvent
。例如,如果输入无效,则betterJTextfield
将变为红色等。
如果您需要知道的话,我会将所有betterJTextfield
放在一个矩阵中。数独中的每个字段都处理一个数字。
@Override
public void insertUpdate(DocumentEvent e) {
//Removed code which checks if the input in the betterJTextField is fine.
}
(
JFormattedTextfield
扩展了JTextField
)public class betterJTextField extends JFormattedTextField {
private int row;
private int column;
public betterJTextField(Format format, int row, int column) {
super(format);
this.row = row;
this.column = column;
// TODO Auto-generated constructor stub
}
public int getRow() {
return row;
}
public int getColumn() {
return column;
}
最佳答案
我不是很完全理解您的要求,但是我相信这是您想要的:
private static class RedDocumentListener implements DocumentListener {
private JTextField textField;
public RedDocumentListener(JTextField textField) {
this.textField = textField;
}
@Override
public void insertUpdate(DocumentEvent e) {
textField.setBackground(Color.red);
}
@Override
public void removeUpdate(DocumentEvent e) {
textField.setBackground(Color.red);
}
@Override
public void changedUpdate(DocumentEvent e) {
textField.setBackground(Color.red);
}
}