#java #javatutorial #javacourse This is a beginner's project to help us learn and understand Object Oriented Programming and Threading. We will only be using topics we have discussed in past videos in this series. import ; import ; import ; import ; public class Main { public static void main(String[] args) { // JAVA ALARM CLOCK Scanner scanner = new Scanner( ); DateTimeFormatter formatter = ("HH:mm:ss"); LocalTime alarmTime = null; String filePath = "A Caring "; while(alarmTime == null){ try{ ("Enter an alarm time (HH:MM:SS): "); String inputTime = (); alarmTime = (inputTime, formatter); ("Alarm set for " + alarmTime); } catch(DateTimeParseException e){ ("Invalid format. Please use HH:MM:SS"); } } AlarmClock alarmClock = new AlarmClock(alarmTime, filePath, scanner); Thread alarmThread = new Thread(alarmClock); (); } } import .*; import .*; import ; import ; import ; import ; public class AlarmClock implements Runnable{ private final LocalTime alarmTime; private final String filePath; private final Scanner scanner; AlarmClock(LocalTime alarmTime, String filePath, Scanner scanner){ = alarmTime; = filePath; = scanner; } @Override public void run(){ while( ().isBefore(alarmTime)){ try { (1000); LocalTime now = (); ("\r%02d:%02d:%02d", (), (), ()); } catch (InterruptedException e) { ("Thread was interrupted"); } } ("\n*ALARM NOISES*"); playSound(filePath); } private void playSound(String filePath){ File audioFile = new File(filePath); try(AudioInputStream audioStream = (audioFile)){ Clip clip = (); (audioStream); (); ("Press *Enter* to stop the alarm: "); (); (); (); } catch(UnsupportedAudioFileException e){ ("Audio file format is not supported"); } catch(LineUnavailableException e){ ("Audio is unavailable"); } catch(IOException e){ ("Error reading audio file"); } } }











