I made several technique comments. You weren't expected to know to do certain stuff, so it didn't affect your score, but I wanted to point them out. Here were the things I was specifically looking for:
Clock instantiable class. This class could hold your three Time objects, deal with incrementing the time, and generating the proper String to pass to the AlarmFrame. It could also keep track of the alarm starting time, and therefore whether or not the alarm is on at any given time. All this would make the main() method much easier to manage. Make sure you check the solution when it is available to see how this would work.
static, because it would be called from your main method; this is definitely allowed, and often desirable.
case blocks too big. It was inappropriate to implement the entire running clock inside case 4. You should have found a way to break out of the menu loop when this case was selected. See the solution for an example.
default case. Most people forgot to check for ListBox.NO_SELECTION (returned when the user clicks OK without highlighting one of the choices. If you didn't use a default case, then nothing would happen, which is not appropriate. This is an example of why you should always implement a default case, even if you thought you handled all possible cases: there could always be something you didn't think about!!
while (...) {
switch (choice) {
case 0: do something; break;
case 1: do something; break;
case 2: do something; break;
case 3: do something; break;
case 4: do something; break;
case 5: System.exit(0);
default: do something;
}
}
OR
final int SET_ALARM_HOUR = 0;
final int SET_ALARM_MINUTE = 1;
final int SET_ALARM_SECOND = 2;
final int SET_ALARM_LENGTH = 3;
final int START_CLOCK = 4;
final int EXIT = 5;
while (...) {
switch(choice) {
case SET_ALARM_HOUR: do something; break;
case SET_ALARM_MINUTE: do something; break;
case SET_ALARM_SECOND: do something; break;
case SET_ALARM_LENGTH: do something; break;
case START_CLOCK: do something; break;
case EXIT: System.exit(0);
default: do something;
}
}
Need I say more?? Clearly labelling your case statements is much better, in terms of readability.