Â
Clock with Audio
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author MBC
*/
public class ClockWithAudio extends JApplet
{
protected AudioClip[] hourAudio = new AudioClip[12];
protected AudioClip[] minuteAudio = new AudioClip[60];
protected AudioClip amAudio = Applet.newAudioClip(
this.getClass().getResource("am.au"));
protected AudioClip pmAudio = Applet.newAudioClip(
this.getClass().getResource("pm.au"));
private StillClock clock = new StillClock();
private Timer timer = new Timer(1000, new TimerListener());
private JLabel jlblDigitTime = new JLabel("", JLabel.CENTER);
@Override
public void init()
{
for(int i = 0; i < 12; i++)
hourAudio[i] = Applet.newAudioClip(
this.getClass().getResource("audio/hour" + i + ".au"));
for(int i = 0; i < 60; i++)
minuteAudio[i] = Applet.newAudioClip(
this.getClass().getResource("audio/minute" + i + ".au"));
add(clock, BorderLayout.CENTER);
add(jlblDigitTime, BorderLayout.SOUTH);
}
@Override
public void start()
{
timer.start();
}
@Override
public void stop()
{
timer.stop();
}
private class TimerListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
clock.setCurrentTime();
clock.repaint();
jlblDigitTime.setText(
clock.getHour() + ":" + clock.getMinute()
+ ":" + clock.getSecond());
if (clock.getSecond() == 0)
announceTime(clock.getHour(), clock.getMinute());
}
}
public void announceTime(int hour, int minute)
{
hourAudio[hour % 12].play();
try
{
Thread.sleep(1500);
minuteAudio[minute].play();
Thread.sleep(1500);
}
catch(InterruptedException ex)
{
}
if (hour < 12)
amAudio.play();
else
pmAudio.play();
}
/*public static void main(String[] args)
{
ClockWithAudio applet = new ClockWithAudio();
System.out.println("this sentence printed");
applet.init();
applet.start();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Clock with Audio");
frame.getContentPane().add(applet, BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(400, 320);
}*/
}