Java报警程序未运行
所以我得到了一个报警程序的代码,这个程序是在互联网上用java编写的,但仍然有一些错误,我不知道如何修复,因为我对java编程还不熟悉。 我希望能在这方面得到帮助,谢谢Java报警程序未运行,java,netbeans,Java,Netbeans,所以我得到了一个报警程序的代码,这个程序是在互联网上用java编写的,但仍然有一些错误,我不知道如何修复,因为我对java编程还不熟悉。 我希望能在这方面得到帮助,谢谢 package alarm; import java.io.IOException; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; pub
package alarm;
import java.io.IOException;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class Alarm { Thread t; int str = 0;
public void checkAlarm(int h,int m,final String ampm,final String message)
{ final int a=h,b=m;
if(ampm.equals("AM"))
{
str=0;
}
else if(ampm.equals("PM"))
{
str=1;
}
final boolean whileloop=true;
t=new Thread(){ public void run(){ while(whileloop==true)
{ Calendar d=new GregorianCalendar(); int hours=d.get(Calendar.HOUR);
int mins=d.get(Calendar.MINUTE); int str1=d.get(Calendar.AM_PM);
if(a==hours&&b==mins&&str==str1)
{ // AlarmClock ac=new AlarmClock(null,true); try { JOptionPane.showMessageDialog(null,"Alarm Works!"); // ac.getAlarm(message); break; } catch (IOException ex) { } } } }
};
t.setPriority(Thread.MIN_PRIORITY);
t.start();
} public static void main(String ar[])
{
Alarm a=new Alarm();
a.checkAlarm(4,58,"AM","XD");
}
我很难读懂代码,所以我试着把它整理一下。这似乎是一个更大的图景的一部分。我设想Alarm类是AlarmClock的一部分(成员),这在代码的注释部分提到过。或者Alarm是AlarmClock的内部类?至少我会这么想。因为它调用getAlarm()。用“message”作为参数调用该方法很奇怪。除非类中没有对AlarmClock的引用。我更喜欢getAlarm().getMessage()。 但是我会让闹钟有一个运行的线程,而不是闹钟。我不知道。当我不了解整个情况时,很难说。无论如何。试着把它清理干净,做成某种工件 这可能是cpu密集型的。也应该有一个塞子的方法来停止线程,可能还有很多其他的东西。这绝不是一个正确的答案,只是我希望能给大家一些启示。也许你可以提供更多的信息或代码,这是它的一部分
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Alarm2 {
private int str = 0;
private int a;
private int b;
private Thread t;
private volatile boolean whileloop = true;
public static void main(String[] args) {
Alarm2 a = new Alarm2();
a.checkAlarm(4,36,"AM","XD");
}
public void checkAlarm(int h,int m, String ampm, String message) {
this.a = h;
this.b = m;
if(ampm.equals("AM")) {
str=0;
}
else if(ampm.equals("PM")) {
str=1;
}
t = new Thread() {
public void run() {
while(whileloop == true) {
Calendar d = new GregorianCalendar();
int hours = d.get(Calendar.HOUR);
int mins = d.get(Calendar.MINUTE);
int str1 = d.get(Calendar.AM_PM);
if((a == hours) && (b == mins) && (str == str1)) {
// AlarmClock ac=new AlarmClock(null,true); try { JOptionPane.showMessageDialog(null,"Alarm Works!"); // ac.getAlarm(message); break; } catch (IOException ex) { } } } }
System.out.println("Ring Ring!!!! Alarm working :)");
break;
}
}
}
};
t.setPriority(Thread.MIN_PRIORITY);
t.start();
}
}
错误是什么?