Строгое 24-часовое время в JFormattedTextField

Я пытаюсь создать 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);
    }
6
задан FuryComputers 15 June 2012 в 13:56
поделиться