首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JCalendar中使用JDialog

在JCalendar中使用JDialog
EN

Stack Overflow用户
提问于 2014-02-21 21:58:46
回答 1查看 2.2K关注 0票数 0

我的程序使用JDialog来打开表单,在表单中,我希望用户选择日期时使用JCalendar,然后再将它用于其他方法。

我已经下载了JCalendar库。我读过一些示例代码,但仍然不知道该如何做。我的想法是,在表单中按一个按钮(选择日期),就像用那个JCalendar打开一个小窗口一样,当日期被选中时,它将以TextField的形式显示在表单中。

有人能给我推荐一种方法,用最少的麻烦来做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-21 22:20:59

我的想法是,在表单中按一个按钮(选择日期),就像用那个JCalendar打开一个小窗口一样,当日期被选中时,它将以TextField的形式显示在表单中。

您可能希望尝试出现在JDateChooser库中的JCalendar类,它允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供一个PropertyChangeListener,以便侦听" date“属性的更改,并相应地更新文本字段的文本。例如,类似这样的事情:

代码语言:javascript
复制
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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21946016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档