猿问

JFormattedTextField:输入持续时间值

我想使用JFormattedTextField允许用户将持续时间值输入表单。有效值示例为:


2h 30m

72h 15m

6h

0h


但是,我在此方面取得的成功有限。有人可以建议如何实现吗?如果可以使用a也可以达到此结果,我JTextField很好。


谢谢!


如果值钱,这是我目前的尝试:


 mFormattedText.setFormatterFactory(

    new DefaultFormatterFactory(

        new DateFormatter(

            new SimpleDateFormat("H mm"))));

这种排序有效,除了:


我无法获取h并m显示为纯文本(我尝试进行转义) *

小时数已达到最大值


潇湘沐
浏览 435回答 3
3回答

MMMHUHU

编码:public static void main(String[] args) {    JFrame jFrame = new JFrame();    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    jFrame.setLayout(new BorderLayout());    jFrame.setPreferredSize(new Dimension(500, 500));    final JFormattedTextField comp = new JFormattedTextField();    comp.setFormatterFactory(new DefaultFormatterFactory(new DateFormatter(new SimpleDateFormat(            "H'h' mm'm'"))));    comp.setValue(Calendar.getInstance().getTime());    comp.addPropertyChangeListener("value", new PropertyChangeListener() {        @Override public void propertyChange(PropertyChangeEvent evt) {            System.out.println(comp.getValue());        }    });    jFrame.getContentPane().add(comp, BorderLayout.CENTER);    jFrame.pack();    jFrame.setVisible(true);}
随时随地看视频慕课网APP

相关分类

Java
我要回答