Java 在JDialog中使用JCalendar

Java 在JDialog中使用JCalendar,java,swing,jdialog,jcalendar,Java,Swing,Jdialog,Jcalendar,我的程序使用JDialogs打开表单,并使用JCalendar的表单供用户选择日期,然后供我用于其他方法 我已经下载了JCalendar库。我读了一些示例代码,但仍然不知道如何做。我的想法是,在表单中,你按下一个按钮(选择日期),像一个小窗口一样打开JCalendar,当选择日期时,它在表单中显示为文本字段 有人能给我推荐一些麻烦最少的方法吗 我有一个想法,在表单中,你按下一个按钮(选择日期),然后 就像打开一个小窗口,显示JCalendar和日期 选中它将在表单中显示为文本字段 您可能希望尝试

我的程序使用
JDialog
s打开表单,并使用
JCalendar
的表单供用户选择日期,然后供我用于其他方法

我已经下载了
JCalendar
库。我读了一些示例代码,但仍然不知道如何做。我的想法是,在表单中,你按下一个按钮(选择日期),像一个小窗口一样打开
JCalendar
,当选择日期时,它在表单中显示为文本字段

有人能给我推荐一些麻烦最少的方法吗

我有一个想法,在表单中,你按下一个按钮(选择日期),然后 就像打开一个小窗口,显示JCalendar和日期 选中它将在表单中显示为文本字段

您可能希望尝试
JCalendar
库中的
JDateChooser
类,该类允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供一个参数,以便侦听“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);
我有一个想法,在表单中,你按下一个按钮(选择日期),然后 就像打开一个小窗口,显示JCalendar和日期 选中它将在表单中显示为文本字段

您可能希望尝试
JCalendar
库中的
JDateChooser
类,该类允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供一个参数,以便侦听“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);
我有一个想法,在表单中,你按下一个按钮(选择日期),然后 就像打开一个小窗口,显示JCalendar和日期 选中它将在表单中显示为文本字段

您可能希望尝试
JCalendar
库中的
JDateChooser
类,该类允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供一个参数,以便侦听“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);
我有一个想法,在表单中,你按下一个按钮(选择日期),然后 就像打开一个小窗口,显示JCalendar和日期 选中它将在表单中显示为文本字段

您可能希望尝试
JCalendar
库中的
JDateChooser
类,该类允许选择日期或手动键入日期。关于第二部分,您需要向日期选择器提供一个参数,以便侦听“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);

我不是指实时更改文本字段,日历关闭后,日期应该显示给用户。我的主要问题是如何在我的JDialog中实现JCalendar或JDateChooser,我应该如何创建和显示它。@Gedas很抱歉我误解了textfield部分(只需忽略
PropertyChangeListener
部分)。请参阅我的编辑。我觉得这很简单,不是吗?我不是指实时更改文本字段,在日历关闭后,日期应该显示给用户。我的主要问题是如何在我的JDialog中实现JCalendar或JDateChooser,我应该如何创建和显示它。@Gedas很抱歉我误解了textfield部分(只需忽略
PropertyChangeListener
部分)。请参阅我的编辑。我觉得这很简单,不是吗?我不是指实时更改文本字段,在日历关闭后,日期应该显示给用户。我的主要问题是如何在我的JDialog中实现JCalendar或JDateChooser,我应该如何创建和显示它。@Gedas很抱歉我误解了textfield部分(只需忽略
PropertyChangeListener
部分)。请参阅我的编辑。我觉得这很简单,不是吗?我不是指实时更改文本字段,在日历关闭后,日期应该显示给用户。我的主要问题是如何在我的JDialog中实现JCalendar或JDateChooser,我应该如何创建和显示它。@Gedas很抱歉我误解了textfield部分(只需忽略
PropertyChangeListener
部分)。请参阅我的编辑。我觉得很简单,不是吗?