我正在制作一个小型闹钟应用程序来复习 Java。该应用程序的目的是让用户设置时钟时间和闹钟时间,然后当系统时间等于闹钟时间时闹钟应该“响起”。
时钟类包含日历和日期对象。
时钟是从类外的主要方法中引用的。在那个主要方法中,我构建了一个简单的命令行用户界面,用户可以在其中设置时钟和闹钟的时间。默认情况下,时钟初始化为当前系统时间。
然而,问题在于自动初始化和用户定义的时钟对象——它们不是“滴答”或更新。
Clock regularClock = new Clock(); //Defaults clock (using a Date) to the system time
while (userInput != "Quit")
{
switch(userInput)
{
...Other choices here...
case "Set Time": System.out.print("Enter hour: ");
hours = kb.nextInt();
System.out.print("\nEnter minutes: ");
minutes = kb.nextInt();
ACR.regularClock.setTime(hours, minutes);
System.out.println("Clock has been set");
case "Set Alarm": System.out.print("Enter hour: ");
hours = kb.nextInt();
System.out.print("\nEnter minutes: ");
minutes = kb.nextInt();
ACR.alarmClock.setTime(hours, minutes);
ACR.alarmClock.setAlarmOn(true);
System.out.println("Alarm has been set.");
break;
...Other choices here...
userInput = keyboard.next();
}
正如您将看到的,没有循环或任何东西可以刷新或保持常规时钟滴答作响。出于某种原因,当我开始时,我认为 Date 和 Calendar 对象一旦创建就会继续运行——有点像秒表。
所以现在我想知道在这个while循环中更新它们的最佳方法是什么。如果只允许使用默认的系统时钟,那就很容易了——我每次都可以在 while 循环的开头创建一个新的 Date 对象。但是,如果他们选择了,那将覆盖用户创建的时钟时间。
此外,如果用户不输入任何输入 - 而只是让应用程序坐在那里 - 他/她将输入输入 - 它不应该仍然刷新时间并检查regularClock = alarmClock时间吗?我怎样才能做到这一点?
我意识到我现在有点漫不经心,所以我就这样吧。我一直在努力,但无法找出最佳解决方案。如果您有任何问题,请告诉我!
简短摘要问题:
如何保持 Date 或 Calendar 对象中的时间,即使它已被修改?
如何在等待用户输入的同时不断更新这些对象?