나는 jTextField
에 대해 InputVerifier
을 사용하여 사용자 입력이 정수인지 확인합니다. 그렇지 않은 경우 마지막 값으로 되돌리고 싶습니다. 나는 어떻게 이런 일을합니까? 여기에 지금까지 가지고있는 코드 :jTextField를 마지막 값으로 되돌리기
class IntegerVerifier extends InputVerifier {
public boolean verify(JComponent input) {
JTextField text = (JTextField)input;
String old = text.getText();
try {
Integer.parseInt(text.getText().trim());
} catch (NumberFormatException e) {
// this does not work b/c input is not a TextField
input.setText(old);
}
return true;
}
}
편집 : 아래 내가 솔루션으로 사용하여 종료 것입니다. 나는 처음에 이것을 실제로 시도했지만 작동하지 않는 것처럼 보였다. 테스트에서 오류가 발견되었습니다. gui를 시작한 직후 올바르지 않은 값으로 텍스트 필드를 변경하려고했지만 필드를 비워 두었습니다. 그러나 텍스트 필드는 GUI가 시작하자마자 초점을 맞추기 때문에 초기 값은 null로 생각됩니다. 후속 변경 사항이 예상대로 작동합니다.
class IntegerVerifier extends InputVerifier {
public boolean verify(JComponent input) {
JTextField text = (JTextField) input;
String old = text.getText();
try {
Integer.parseInt(text.getText().trim());
} catch (NumberFormatException e) {
text.setText(old);
//return false; // don't use this otherwise it won't revert the value
}
return true;
}
}