24 時間のみを受け入れる JFormattedTextField を作成しようとしています。
私は解決策に非常に近づいていますが、次のコード例が機能しないケースが 1 つあります。
時刻「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);
}