问题
I am looking for a way to ensure that my text field (JTextField, JFormattedTextField) is returning a double or int rather than a string when I call .getText(). What is the best way to do this (if possible)?
Thanks!
badPanda :D
回答1:
Register InputVerifier and call method
getValue
fromJFormattedTextField
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); }
}
回答2:
I would check the input in the textbox callback and simply make the box red or create an alert message nearby. You can remove the non-numeric character from the textbox string.
回答3:
Use JFormattedTextField.
来源:https://stackoverflow.com/questions/2510047/what-is-a-simple-way-to-create-a-text-field-or-such-that-only-allows-the-user