0

我正在使用JCalendar并以这种方式对其进行初始化:

popup = new JPopupMenu();
calendar = new JCalendar();
popup.add(calendar);
calendar.addDateListener(new DateListener() {
    @Override
    public void dateChanged(DateEvent de) {
       Calendar c = de.getSelectedDate();
       if (c != null) {
          String data = c.get(Calendar.DAY_OF_MONTH) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.YEAR);
          dateTextField.setText(data);
          popup.setVisible(false);
       }
    }
});
dateTextField.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
        popup.show(e.getComponent(), e.getX(), e.getY());
        popup.setVisible(true);  
    }
});

这样,当我单击文本字段dateTextField时,它会显示弹出窗口,JCalendar但它会显示我今天选择的日期,如果我想在我的文本字段中显示该日期,我必须选择另一个日期,然后选择另一个时间今天的日期。如何删除默认选择的日期?谢谢!!!

4

1 回答 1

0

似乎没有办法使用 JCalendar 完全按照您的意愿行事。一种替代方法是在您的弹出窗口中添加一个“完成”按钮,该按钮将获取当前选定的日期、设置按钮文本并关闭弹出窗口。无论如何,这对用户来说可能更直观,因为如果他们不小心点击了错误的日期,关闭弹出窗口可能会有点混乱。

于 2012-10-05T22:33:34.563 回答