我的程序使用JDialog来打开表单,并以我想使用JCalendar的形式供用户选择日期,然后让我将其用于其他方法。

我已经下载了JCalendar库。我阅读了一些示例代码,但仍不确定如何执行。我有一个想法,在表单中您按下一个按钮(选择日期),就像打开一个小窗口并显示JCalendar一样,当选择了日期时,它会以TextField的形式显示在表单中。

有人可以推荐我一些麻烦最少的方法吗?

最佳答案

我有一个想法,您可以在表单中按下一个按钮(选择日期),然后
  就像一个打开JCalendar的小窗口,当日期是
  选择它会在窗体中显示为TextField。


您可能要尝试使用JDateChooser库中的JCalendar类,该类允许选择日期或手动键入日期。关于第二部分,您需要为日期选择器提供PropertyChangeListener以便侦听“ date”属性的更改并相应地更新文本字段的文本。例如这样的事情:

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);

07-26 05:28