提问人:Pitergann 提问时间:7/11/2023 最后编辑:Hovercraft Full Of EelsPitergann 更新时间:7/11/2023 访问量:180
日期 不得为 null [重复]
Date Must not be null [duplicate]
问:
我想在我的应用程序中使用 DateChooser。我已经在我的代码中安装并实现了所有内容,并且没有编译错误,但是当我尝试运行代码时,控制台显示一个错误,“日期不得为空”。我做错了什么?我必须先实现“基准”日期吗?
kalender = new JPanel();
kalender.setBackground(new Color(135, 206, 235));
kalender.setBounds(0, 0, 506, 250);
LayeredPane.add(kalender);
kalender.setLayout(null);
Termin = new Termin();
SimpleDateFormat sdl = new SimpleDateFormat("dd-MM-yyyy");
JDateChooser dateChooser = new JDateChooser();
dateChooser.setBounds(169, 119, 70, 20);
Termin.setDate(sdl.format(dateChooser.getDate())); // the erro must be here because with out this
kalender.add(dateChooser); //line everything works
System.out.println(Termin);
JButton btnNext3 = new JButton("Next");
btnNext3.setBounds(215, 200, 70, 20);
kalender.add(btnNext3);
btnNext3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LayeredPane.moveToFront(kontakt);
kalender.removeAll();
}
});
因此,我有一个单独的类“Termin”来定义约会的所有属性,并且我想将属性日期设置为用户在日期选择器中选择的任何属性。
我尝试通过硬编码来设置属性中的日期,但是当用户使用日期选择器进行选择时,它不会改变。
答:
2赞
marcinj
7/11/2023
#1
在这一行中:
Termin.setDate(sdl.format(dateChooser.getDate()));
dateChooser.getDate() 返回 null,因为尚未选择日期。您需要检测用户何时更改了日期。您应该使用以下 SO 中的代码:是否可以检测 JCalendar JDateChooser 字段上的日期更改?
它应该看起来像这样:
dateChooser.getDateEditor().addPropertyChangeListener(
new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
if ("date".equals(e.getPropertyName())) {
java.util.Date date = (java.util.Date)e.getNewValue();
Termin.setDate(sdl.format(date));
}
}
}
);
评论
0赞
Pitergann
7/11/2023
好吧,谢谢你的帮助没有新
评论