Я пытаюсь создать JFormattedTextField, который принимает только 24-часовое время.
Я очень близок к решению, но есть один случай, когда следующий пример кода не
Если вы введете время "222" и переместите фокус из поля, время будет исправлено на "2202". Я бы хотел, чтобы он принимал только полные 4 цифры 24-часового времени. Этот код работает, как я хочу почти во всех случаях, кроме только что упомянутого. Есть предложения?
public static void main(String[] args) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("HHmm");
dateFormat.setLenient(false);
DateFormatter dateFormatter = new DateFormatter(dateFormat);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFormattedTextField textField = new JFormattedTextField(dateFormatter);
frame.add(textField, BorderLayout.NORTH);
frame.add(new JTextField("This is here so you can change focus."), BorderLayout.SOUTH);
frame.setSize(250, 100);
frame.setVisible(true);
}