web-dev-qa-db-ja.com

MaskFormatterを使用したJFormattedTextField

日付と時刻のエントリを制限するために使用するJFormattedTextFieldがあります。プレースホルダー文字を表示するためにMaskFormatterを使用したいと思います。テキストフィールドがすでにMaskFormatterを使用している場合、JFormattedTextFieldの上にSimpleDateFormatを使用する方法はありますか?

ありがとう、ジェフ

12
Jeff Storey
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

私がその質問を誤解していない限り。

28
I82Much

または、 InputVerifier で提案されているように、 InputVerificationDemo を検討します。これは、より複雑な です。

2
trashgod