2017-05-15 13 views
0

私は、インターネットから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; 
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"); 
} 
+0

エラーは何ですか? – dat3450

答えて

0

コードを読むのは難しかったので少し掃除しようとしました。より大きな画像の一部に見えます。私は、AlarmクラスがAlarmClockの一部(メンバ)であり、それがコードのコメント部分に記載されていると思います。またはAlarmはAlarmClockの内部クラスですか?少なくとも私はそれがどのようになると思いますか。 getAlarm()を呼び出すので。 "メッセージ"を引数としてそのメソッドを呼び出すと奇妙です。クラス内のAlarmClockへの参照が存在しない場合を除きます。私はgetAlarm()。getMessage()を好むでしょう。 しかし、AlarmClockにアラームではなく実行中のスレッドがあるようにします。私は知らないよ。私が全体の絵を知らないとき、言うのは難しい。いずれかの方法。それをきれいにして、何らかの働きかけをしました。

これは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(); 
    } 
} 
関連する問題