我正在使用Scheduler应用程序,用户可以在其中输入一些信息,如任务名称,时间和日期。如果当前有任务,应用程序应检查每分钟,它会弹出一个窗口或发出声音。现在我坚持检查过程。
public static void main(String[] args) {
try{
final BufferedReader br = new BufferedReader(new FileReader("D://Courses//PlannerText.txt"));
final Runnable checker = new Runnable() {
public void run() {
Calendar cal = Calendar.getInstance();
System.out.println( "This is time before if statement "+cal.get(Calendar.HOUR) +":" + cal.get(Calendar.MINUTE) );
try {
String line = null;
while ( (line = br.readLine()) !=null)
{
String[] currTask = line.split("\\|");
if (cal.get(Calendar.MINUTE)== Integer.parseInt(currTask[2])
&& cal.get(Calendar.HOUR) == Integer.parseInt(currTask[3])){
System.out.println( "This is time after if statement "+cal.get(Calendar.HOUR) +":" + cal.get(Calendar.MINUTE) );
System.out.println("This is the time of the task "+currTask[3]+":"+currTask[2]);
JFrame reminderFrame = new JFrame("Reminder");
reminderFrame.setVisible(true);
reminderFrame.setLocation(200,200);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
final ScheduledFuture checkerHandle = scheduler.scheduleAtFixedRate(checker, 0, 1, TimeUnit.MINUTES);
scheduler.schedule(new Runnable() {
public void run() {
checkerHandle.cancel(true);
}
}, 1, TimeUnit.DAYS);
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
当前时间=任务在文本文件中的时间时,框架不会弹出,所以有人会告诉我这段代码有什么问题!!
提前致谢:)
答案 0 :(得分:0)
欢迎使用调试的概念。放置一些调试断点或打印输出以显示currTask数组的值。
可能你使用错误的数组索引或时间错误(也许是HOUR_OF_DAY)
答案 1 :(得分:0)
谢谢大家,但我已经弄明白了...因为我的缓冲读取器不在我的run()方法中,所以文件只在启动时读取一次,而不是每分钟读取一次。