В этом MaskFormatter, как ограничить месяц до 12 и дату до 31? - PullRequest
0 голосов
/ 05 января 2019

Как я могу сделать Formatter таким образом, чтобы месяц не мог быть превышен до 12, а дата до 31 и 30 в соответствии с месяцем?

И если вы хотите предложить какой-либо другой модуль форматирования, который вы должны рассмотреть эту вещь, я должен хотеть, чтобы '/' не стирался.

    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.text.ParseException;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFormattedTextField;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.text.MaskFormatter;
    import javax.swing.JTextField;
    import java.awt.GridLayout;

    public class ForrmattedDateField extends JDialog {
        private JFormattedTextField textField;

        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            try {
                ForrmattedDateField dialog = new ForrmattedDateField();
                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                dialog.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        /**
         * Create the dialog.
         * @throws ParseException 
         */
        public ForrmattedDateField() throws ParseException {
            setBounds(100, 100, 145, 96);
            getContentPane().setLayout(new GridLayout(2, 2, 1, 0));
            {
                JFormattedTextField textField = new JFormattedTextField(new MaskFormatter("##/##/####"));
                getContentPane().add(textField);
                textField.setColumns(10);
            }
        }

    }
...