Foros del Web » Programación para mayores de 30 ;) » Java »

Reloj

Estas en el tema de Reloj en el foro de Java en Foros del Web. He diseñado un componente en concreto (un clock) en donde he establecido una propiedad diseñada por mi que es AlarmaHora, es decir cuando añado mi ...
  #1 (permalink)  
Antiguo 17/10/2013, 18:57
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 20
Antigüedad: 11 años, 8 meses
Puntos: 1
Reloj

He diseñado un componente en concreto (un clock) en donde he establecido una propiedad diseñada por mi que es AlarmaHora, es decir cuando añado mi componente a un jframe voy al diseñador de netbeans y modifico mi propiedad Alarmahora que tiene un formato asi 18:00:00 aqui esta mi problema intento lanzar un evento y no consigo que aparezca.


Creo que el fallo está aquí

if (hora2.format(tiempo.getTime()).equals(AlarmaHora) ){

receptor.capturarAlarma( new AlarmaEvent(this));
}
}

he creado una nueva variable hora2 y no cogo hora porque hora tiene la franjahoraria am_pm cosa que mi alarma no, de todos modos no se si eso afectaría o no, pero estoy vueelto loco con esto y quisiera que me dijeran alguna forma para solucionarlo. La accion del evento la pongo en el jframe por lo que no esta en las lineas del componente.
En definitiva quiero que me ayuden a comparar correctamente la AlarmaHora con la hora actual para que al llegar a la hora de la Alarma se produzca mi evento. Muchas gracias de antemano. Dejo aqui mi codigo.



public class Reloj extends JLabel implements Serializable, ActionListener {
private String hora,AlarmaHora;


private Timer timer;
private int delay;
boolean Formato_Hora=true;
private AlarmaListener receptor;
static private SimpleDateFormat hora2=new SimpleDateFormat("HH:mm:ss");
static private Calendar tiempo = Calendar.getInstance();


/**
* Constructs a Digital Clock using the given hora and the default delay.
* @param hora - the hora describing the date and time format
*/
public class AlarmaEvent extends java.util.EventObject
{
// constructor, se le pasa el objeto y un identificador.
public AlarmaEvent(Object source)
{
super(source);
}
}

//Define la interfaz para el nuevo tipo de evento
public interface AlarmaListener extends EventListener
{
void capturarAlarma(AlarmaEvent ev);
}
public Reloj(String hora){
this.hora = hora;
this.delay = 1000;
createTimer();
timer.start();

}


public Reloj(String hora, int delay){
this.delay = delay;
createTimer();
timer.start();
}



public Reloj(){
if(Formato_Hora==true){
hora = "hh:mm:ss a";
}
else {

hora = "HH:mm:ss a";
}
hora2.format(tiempo.getTime());
this.delay = 1000;
createTimer();
timer.start();
}

private void createTimer(){
timer = new Timer(delay, new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
setText(new SimpleDateFormat(hora).format(new Date()));
}
});
}



public Timer getTimer() {
return timer;
}

public int getDelay() {
return delay;
}

public void setDelay(int delay) {
this.delay = delay;
}

public static void main(String[] args){
Reloj reloj= new Reloj();
System.out.println(hora2.format(tiempo.getTime())) ;
}
public boolean isFormato_Hora() {
return Formato_Hora;
}

public void setFormato_Hora(boolean valor) {
Formato_Hora=valor;
if(Formato_Hora==true){
hora = "hh:mm:ss a";
}
else {

hora = "HH:mm:ss a";
}

}

public String getAlarmaHora() {
return AlarmaHora;
}

public void setAlarmaHora(String AlarmaHora) {
this.AlarmaHora = AlarmaHora;
}


public void addAlarmaListener(AlarmaListener receptor)
{
this.receptor = receptor;
}

public void removeAlarmaListener(AlarmaListener receptor)
{
this.receptor=null;
}
@Override
public void actionPerformed(ActionEvent e) {
// if (hora.equals(AlarmaHora)){
if (hora2.format(tiempo.getTime()).equals(AlarmaHora) ){

receptor.capturarAlarma( new AlarmaEvent(this));
}
}

}

Etiquetas: netbeans, reloj, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:10.