我正在使用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
弹出窗口,但它显示我选择的今天日期,如果我想在我的文本字段中显示该日期,我必须选择另一个日期,然后选择另一个时间今天的日期。如何删除默认选择的日期?谢谢!!!
似乎没有办法使用 JCalendar 做你想做的事情。一种替代方法是在弹出窗口中添加一个"完成"按钮,该按钮将获取当前选定的日期,设置按钮文本,然后关闭弹出窗口。无论如何,这对用户来说可能更直观,因为如果他们不小心点击了错误的日期,弹出窗口关闭可能会有点混乱。