プロが教える店舗&オフィスのセキュリティ対策術

swingで時計を作っているんですがラジオボタンで選択した時間が経過するとアラーム音がなるようにしたいのですが、どのようにしたらよいでしょうか?

時間を表示するところまでできたのですが、アラーム音についてはわからなくて。。どなたかお願いします!

public class Clock extends JFrame implements ActionListener{

private JLabel jLabel = null;

//アラームのラジオグループを作る
ButtonGroup group1 = new ButtonGroup();

JMenuItem button1 = new JRadioButtonMenuItem("30分", false);
JMenuItem button2 = new JRadioButtonMenuItem("1時間", false);
JMenuItem button3 = new JRadioButtonMenuItem("1時間30分 ", false);
JMenuItem button7 = new JRadioButtonMenuItem("設定解除", false);
public static void main(String[] args) {

public Clock() {

AlarmAction alarmAction = new AlarmAction();

~~省略~~

}
private void initialize() {

new Timer(30, this).start();

}

private javax.swing.JPanel getJContentPane() {
if(jContentPane == null) {
jLabel = new JLabel("",JLabel.CENTER);

~~省略~~

}


public void actionPerformed(ActionEvent e) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

jLabel.setText(sdf.format(new Date()));

}

//アラームのクラス
class AlarmAction extends AbstractAction{
AlarmAction(){
}

public void actionPerformed(ActionEvent e){



}
}

A 回答 (4件)

単純にビープ音を鳴らすだけなら、以下でできます。



Toolkit.getDefaultToolkit().beep();

サウンドファイルなどを読み込んで鳴らすとなると、アプレットならAudioClipでできますが、アプリケーションだとちょっと面倒ですね。Java Sound APIを使うことになるでしょう。以下に、簡単な解説がありました。

http://cappuccino.ne.jp/keisuken/java/javasound. …

参考URL:http://cappuccino.ne.jp/keisuken/java/javasound. …

この回答への補足

さきほど素材で、使えそうなサウンドファイル
探しきましたので、後でリンク先を参考にさせて
いただきます。ありがとうございました!!

で、、問題なのがまず最初にビープ音でいいの
ですが、30分や一時間という風に指定した時間
が経過したのち、ビープ音がなるように
したいんですが検索したりしたのですが、
よいサンプルが見つからなくて、、どのように
したらよいでしょうか?(泣

補足日時:2005/07/12 11:20
    • good
    • 0

>30分や一時間という風に指定した時間が経過したのち


java.util.Timer, java.util.TimerTaskを使えば可能だと思います。
サンプルはたぶんWeb上にあるので探してみてください。

この回答への補足

いくつかサンプル見つけたんですが、
なかなかできません~~
scheduleにエラーが出ますし、
○○時間後などの指定の仕方も解かりません(泣


timer.schedule(task,時間指定);


以下の文が自分が付け加えた文なんですが。
どなたかお願いします!!

=========================================


シンボル: メソッド schedule(java.util.TimerTask,int)
場所 : javax.swing.Timer の クラス
timer.schedule(task,2000);
^
エラー 1 個

=======================================
private TimerTask task = new TimerTask() {
public void run() {
Toolkit.getDefaultToolkit().beep();

}
};

//アラームのクラス
class AlarmAction extends AbstractAction{
AlarmAction(){
putValue(NAME, "アラーム");

}

public void actionPerformed(ActionEvent e){


if(e.getSource() == button1){
.schedule(task,);  //30分
}else if(e.getSource() == button2){
.schedule(task,);//1時間
}else if(e.getSource() == button3){
.schedule(task,);//1時間30分
}else if(e.getSource() == button4){
.schedule(task,);
}else if(e.getSource() == button5){
.schedule(task,);
}else if(e.getSource() == button6){
.schedule(task,);
}else if(e.getSource() == button7){
//設定解除
}

補足日時:2005/07/13 00:23
    • good
    • 0

JAVAのAPIを読みなさい。

    • good
    • 0

実行時エラーならともかくコンパイルエラーぐらい自分で直しましょうよ。


javaのコンパイラは親切なのでエラーメッセージにもちゃんと原因が書かれています。

>シンボル: メソッド schedule(java.util.TimerTask,int)
>場所 : javax.swing.Timer の クラス
私は java.util.Timer クラスと書いたはずなんですけど?
というかjavax.swing.Timerがあるからフルパッケージで書いたんです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!