import javax.swing.Timer; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class AlarmClock implements ActionListener { public static final int REPEAT_DELAY = 300; public static final int SNOOZE_DELAY = 5000; private Timer t; private String message; public AlarmClock(String message) { this.message = message; t = new Timer(REPEAT_DELAY, this); t.setInitialDelay(0); t.setCoalesce(false); setRepeats(false); } public void actionPerformed(ActionEvent e) { goOff(); } // fix this method public void setRepeats(boolean flag) { } public boolean isSet() { return t.isRunning(); } public void set() { t.start(); } public void turnOff() { t.stop(); } public void setDelay(int delay) { turnOff(); t.setInitialDelay(delay); } public int getDelay() { return t.getInitialDelay(); } public void goOff() { System.out.println(getMessage()); } // fix this method public String getMessage() { return ""; } public void setMessage(String message) { this.message = message; } public void snooze() { turnOff(); t.setInitialDelay(SNOOZE_DELAY); t.start(); } public String toString() { return "AlarmClock[message=" + getMessage() + ",delay=" + getDelay() + ",set=" + isSet() + "]"; } }