我正在寻找一种方法来确保我的文本字段(JTextField,JFormattedTextField)在调用.getText()时返回double或int而不是字符串。最好的方法是什么(如果可能的话)?
谢谢!
badPanda:D
答案 0 :(得分:3)
Register InputVerifier并从getValue
JFormattedTextField
public class FormattedTextFieldVerifier extends InputVerifier {
public boolean verify(JComponent input) {
if (input instanceof JFormattedTextField) {
JFormattedTextField ftf = (JFormattedTextField)input;
AbstractFormatter formatter = ftf.getFormatter();
if (formatter != null) {
String text = ftf.getText();
try {
formatter.stringToValue(text);
return true;
} catch (ParseException pe) {
return false;
}
}
}
return true;
}
public boolean shouldYieldFocus(JComponent input) {
return verify(input);
}
}
答案 1 :(得分:1)
我会检查文本框回调中的输入,只需将框变为红色或在附近创建警告消息。您可以从文本框字符串中删除非数字字符。
答案 2 :(得分:1)