Я ищу способ, чтобы при вызове .getText () мое текстовое поле (JTextField, JFormattedTextField) возвращало double или int, а не строку. Каков наилучший способ сделать это (если это возможно)?
Спасибо!
badPanda: D
Зарегистрируйте InputVerifier и вызовите метод getValue из JFormattedTextField
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); }
}
Использовать JFormattedTextField .
Я бы проверил ввод в обратном вызове текстового поля и просто сделал бы поле красным или создал бы предупреждающее сообщение поблизости. Вы можете удалить нецифровый символ из строки текстового поля.