jTextField
için bir InputVerifier
sahibinin girişinin tam sayı olup olmadığını kontrol etmek ve görmek için var. Değilse, onu son iyi değere geri döndürmek istiyorum. Buna nasıl yaparım? İşte ben bugüne kadar kodudur:jTextField 'i son iyi değere dönüştürün
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;
}
}
DÜZENLEME: Aşağıda Ben çözüm olarak kullanarak sona erdi budur. İlk başta bunu denedim, ama işe yaramadı. Hatanın testte olduğunu keşfettim. Gui'yi başlattıktan hemen sonra metin alanını geçersiz bir değere çevirmeyi denedim, ancak alanı boşaltıyordu. Ancak, metin alanı, gui başladığı anda odaklanmıştı, yani başlangıç değeri boştu. Sonraki değişiklikler beklendiği gibi davranır.
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;
}
}