Ayuda con Reloj Despertador
Buenas Noches necesito realizar un reloj despertador con las siguientes caracteristicas:
a) Realizar algunos métodos para el comportamiento del reloj, por ejemplo Run (corriendo), Active (Activo), Stop (Parar), etc. Usar de los hilos en tiempo de ejecución.
b) Solicitar al usuario la hora exacta en la que se desea programar el despertador. Si el usuario ingresa una hora no válida, el programa deberá generar una excepción apropiada para tal error.
c) Cuando la hora programada se cumple, el despertador muestra un texto alusivo al vencimiento o cumplimiento de la hora.
Y hasta ahora solo he podido realizar el siguiente código:
package reloj;
import java.text.*;
import java.util.*;
public class Reloj extends Thread {
private boolean encendido;
private boolean detenido;
private SimpleDateFormat formato;
public Reloj() {
super();
encendido = true;
detenido = false;
formato = new SimpleDateFormat("HH:mm:ss");
}
public void parar() {
encendido = false;
detenido = true;
try{
join(); //Espera a que el hilo muera...
}
catch(InterruptedException ex) {
System.err.println("Ups! No me puedo detener " + ex.getMessage());
}
}
public void detener() {
detenido = true;
}
public void run() { //Código ejecutable por el hilo
while(encendido) {
if(detenido) {
synchronized (this) {
try{
wait(); //Bloquear
} catch(InterruptedException ex) {
}
}
}
Calendar tiempo = Calendar.getInstance();
System.out.println(formato.format(tiempo.getTime()));
try{
sleep(1000); //Suspender por 1 segundo
} catch(InterruptedException ex) {
}
}
}
public void reanudar() {
detenido = false;
synchronized(this) {
notify(); //Desbloquear, pasar a estado de ejecución
}
}
public static void main(String[] args) {
BufferedReader cin= new BufferedReader(new InputStreamReader(System.in));
Reloj reloj = new Reloj();
int opcion;
do {
System.out.println("1. Arrancar");
System.out.println("2. Detener");
System.out.println("3. Reanudar");
System.out.println("4. Salir");
System.out.print("> ");
try{
opcion = Integer.parseInt(cin.readLine());
} catch(IOException | NumberFormatException ex) {
opcion= 0;
}
switch(opcion) {
case 1:
reloj.start();
break;
case 2:
reloj.detener();
break;
case 3:
reloj.reanudar();
break;
case 4:
reloj.parar();
break;
}
} while(opcion!= 4);
System.exit(0);
}
}
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 8 semanas 3 días
hace 12 semanas 3 días
hace 20 semanas 11 horas
hace 28 semanas 20 horas
hace 30 semanas 5 días
hace 32 semanas 2 días
hace 35 semanas 3 días
hace 35 semanas 3 días
hace 41 semanas 3 días
hace 42 semanas 4 días