我正在尝试创建一个只接受 24 小时时间的 JFormattedTextField。
我非常接近解决方案,但有一种情况下以下代码示例不起作用。
如果您输入时间“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);
}