【问题标题】:Using JCalendar in a JDialog在 JDialog 中使用 JCalendar
【发布时间】:2014-02-21 21:58:46
【问题描述】:

我的程序使用JDialogs 打开表单,在表单中我想使用JCalendar 供用户选择日期,然后我可以将其用于其他方法。

我已经下载了JCalendar 库。我阅读了一些示例代码,但仍然不知道该怎么做。我有一个想法,在你按下一个按钮(选择日期),就像一个小窗口打开,那个JCalendar和选择日期时,它以表单显示为文本域。

谁能给我推荐一些麻烦最少的方法?

【问题讨论】:

    标签: java swing jdialog jcalendar


    【解决方案1】:

    我有一个想法,在表单中你按下一个按钮(选择日期)和 就像一个带有该 JCalendar 的小窗口以及日期何时打开 选择它以 TextField 的形式显示在表单中。

    您可能想尝试JCalendar 库中的JDateChooser 类,它允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供PropertyChangeListener 以监听“日期”属性更改并相应地更新文本字段的文本。比如这样的:

    final JTextField textField = new JTextField(15);
    
    JDateChooser chooser = new JDateChooser();
    chooser.setLocale(Locale.US);
    
    chooser.addPropertyChangeListener("date", new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            JDateChooser chooser = (JDateChooser)evt.getSource();
            SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
            textField.setText(formatter.format(chooser.getDate()));
        }
    });
    
    JPanel content = new JPanel();
    content.add(chooser);
    content.add(textField);
    
    JDialog dialog = new JDialog ();
    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    dialog.getContentPane().add(content);
    dialog.pack();
    dialog.setLocationRelativeTo(null);
    dialog.setVisible(true);
    

    【讨论】:

    • 我不是说文本字段的实时更改,只是在日历关闭后,日期应该显示给用户。我的主要问题是如何在我的 JDialog 中实现 JCalendar 或 JDateChooser,我应该如何创建和显示它。
    • @Gedas 抱歉,我误解了文本字段部分(忽略 PropertyChangeListener 部分)。请参阅我的编辑。我认为这很简单,不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2011-02-16
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多