日期不可为空

huangapple go评论130阅读模式
英文:

Date Must not be null

问题

我想在我的应用程序中使用DateChooser。我已经安装并在我的代码中实现了所有内容,没有编译错误,但是当我尝试运行代码时,控制台显示错误消息,说"日期不能为Null"。我做错了什么?我需要首先实现一个"基础"日期吗?

  1. kalender = new JPanel();
  2. kalender.setBackground(new Color(135, 206, 235));
  3. kalender.setBounds(0, 0, 506, 250);
  4. LayeredPane.add(kalender);
  5. kalender.setLayout(null);
  6. Termin = new Termin();
  7. SimpleDateFormat sdl = new SimpleDateFormat("dd-MM-yyyy");
  8. JDateChooser dateChooser = new JDateChooser();
  9. dateChooser.setBounds(169, 119, 70, 20);
  10. Termin.setDate(sdl.format(dateChooser.getDate())); // 错误可能在这里,因为没有这行,一切都能正常工作
  11. kalender.add(dateChooser);
  12. System.out.println(Termin);
  13. JButton btnNext3 = new JButton("Next");
  14. btnNext3.setBounds(215, 200, 70, 20);
  15. kalender.add(btnNext3);
  16. btnNext3.addActionListener(new ActionListener() {
  17. public void actionPerformed(ActionEvent e) {
  18. LayeredPane.moveToFront(kontakt);
  19. kalender.removeAll();
  20. }
  21. });

所以,我有一个单独的类"Termin"来定义约会的所有属性,我想将日期属性设置为用户在Date Chooser中选择的日期。

我尝试通过硬编码日期属性来设置日期,但是当用户使用Date Chooser进行选择时,它不会更改。

英文:

I want to use the DateChooser in my application. I have already installed and implemented everything in my code and there are no compilation errors, but when I try to run the code the console shows an error that, "Date Must not be Null". What am I doing wrong? Do I have to implement a "base" date first?

  1. kalender = new JPanel();
  2. kalender.setBackground(new Color(135, 206, 235));
  3. kalender.setBounds(0, 0, 506, 250);
  4. LayeredPane.add(kalender);
  5. kalender.setLayout(null);
  6. Termin = new Termin();
  7. SimpleDateFormat sdl = new SimpleDateFormat("dd-MM-yyyy");
  8. JDateChooser dateChooser = new JDateChooser();
  9. dateChooser.setBounds(169, 119, 70, 20);
  10. Termin.setDate(sdl.format(dateChooser.getDate())); // the erro must be here because with out this
  11. kalender.add(dateChooser); //line everything works
  12. System.out.println(Termin);
  13. JButton btnNext3 = new JButton("Next");
  14. btnNext3.setBounds(215, 200, 70, 20);
  15. kalender.add(btnNext3);
  16. btnNext3.addActionListener(new ActionListener() {
  17. public void actionPerformed(ActionEvent e) {
  18. LayeredPane.moveToFront(kontakt);
  19. kalender.removeAll();
  20. }
  21. });

So I have a separate Class "Termin" to define all the attributes of an appointment, and I want to set the attributes date to whatever the user chooses in the Date Chooser.

I have tried to set the date in the attribute by hard coding it, but then it would not change when the user makes a selection with the date chooser.

答案1

得分: 2

在这行代码中:

  1. Termin.setDate(sdl.format(dateChooser.getDate()));

因为尚未选择日期,dateChooser.getDate() 返回 null。您需要检测用户何时更改了日期。您可以使用以下代码,就像这个 Stack Overflow 页面中所示:https://stackoverflow.com/questions/4156305/is-it-possible-to-detect-a-date-change-on-a-jcalendar-jdatechooser-field

代码应该类似于:

  1. dateChooser.getDateEditor().addPropertyChangeListener(
  2. new PropertyChangeListener() {
  3. @Override
  4. public void propertyChange(PropertyChangeEvent e) {
  5. if ("date".equals(e.getPropertyName())) {
  6. java.util.Date date = (java.util.Date)e.getNewValue();
  7. Termin.setDate(sdl.format(date));
  8. }
  9. }
  10. }
  11. );
英文:

In this line:

  1. Termin.setDate(sdl.format(dateChooser.getDate()));

dateChooser.getDate() returns null because because no date has yet been selected. You need to detect when user has changed the date. You should use code as in this SO: https://stackoverflow.com/questions/4156305/is-it-possible-to-detect-a-date-change-on-a-jcalendar-jdatechooser-field

It should look something like:

  1. dateChooser.getDateEditor().addPropertyChangeListener(
  2. new PropertyChangeListener() {
  3. @Override
  4. public void propertyChange(PropertyChangeEvent e) {
  5. if ("date".equals(e.getPropertyName())) {
  6. java.util.Date date = (java.util.Date)e.getNewValue();
  7. Termin.setDate(sdl.format(date));
  8. }
  9. }
  10. }
  11. );

huangapple
  • 本文由 发表于 2023年7月11日 03:31:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76656779.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定