带有MaskFormatter的JFormattedTextField

时间:2010-11-23 02:36:46

标签: java swing datetime textfield

我有JFormattedTextField我用来限制日期和时间的输入。我想使用MaskFormatter来显示占位符字符。当文本字段已使用MaskFormatter时,有没有办法在JFormattedTextField之上使用SimpleDateFormat

谢谢, 杰夫

3 个答案:

答案 0 :(得分:28)

public class MaskFormatterTest {
    private static final DateFormat df = new SimpleDateFormat("yyyy/mm/dd");


    public static void main(String[] args) {
        JFrame frame = new JFrame("");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();

        JFormattedTextField tf = new JFormattedTextField(df);
        tf.setColumns(20);
        panel.add(tf);
        try {
            MaskFormatter dateMask = new MaskFormatter("####/##/##");
            dateMask.install(tf);
        } catch (ParseException ex) {
            Logger.getLogger(MaskFormatterTest.class.getName()).log(Level.SEVERE, null, ex);
        }

        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}

alt text

除非我误解了这个问题。

答案 1 :(得分:2)

或者,根据InputVerifier中的建议考虑InputVerificationDemo,并且更详细example

答案 2 :(得分:-2)

JFormattedTextField tft3 = 
    new JFormattedTextField(new SimpleDateFormat("yyyy-MM-dd"));
    tft3.setValue(new Date());

    Date date = (Date) tft3.getValue();