programa de despertador java
importar java.util.*;
importar java.awt.*
importar java.applet.*; java.text.*;
clase pública AlarmClock extiende Applet implementa Runnable
{
Thread timer=null //Crea un temporizador de hilo
Imagen clockp, gif1, gif2, clock6, clock7 //clockp: shell del despertador, despertador y pájaro del tiempo
int s, m, h, hh;
AudioClip ipAu, peligro, chirrido;
boolean canPaint=true;
boolean flag=false
boolean strike=true; int contador=0;
int dura;
Imagen offscreen_buf=null;
int i, j, t=0; int timeout=166;
int lastxs=0, lastys=0, lastxm=0, lastym=0, lastxh=0, lastyh=0
Fecha ficticia=nueva fecha( ) ; //Generar objeto de datos
GregorianCalendar cal=new GregorianCalendar();
SimpleDateFormat df=new SimpleDateFormat("aaaa MM dd HH:mm:ss"); el formato de hora
String lastdate=df.format(dummy);
Font F=new Font("TimesRoman", Font.PLAIN, 14);
Fecha dat=null;
Fecha horaNow=null;
Color fgcol=Color.blue;
Color fgcol2=Color. darkGray;
Panel setpanel;
Color backcolor=Color.pink;
TextField showhour, showmin, showssec, sethour, setmin, setsec; cuadro de texto de hora actual y cuadro de texto cronometrado
Botón activado
Botón desactivado
Etiqueta hlabel1, mlabel1, slabel1, hlabel2, mlabel2, slabel2; Mostrar unidad de tiempo Etiqueta utilizada (horas, minutos, segundos)
Etiqueta info1=nueva etiqueta
l("Bienvenido al despertador recordatorio programado"), info2=new Label("");
Label note1=new Label("Hora actual:"), note2=new Label("Despertador settings:" );
boolean setalerm=false, clickflag=false; //Determina si suena y vibra
int fixh=0, fixm=0, fixs=0; / /Grabar el tiempo del despertador
public void init()//Método de inicialización
{
Entero gif_number;
int fieldx=50 , fieldy1= 120, fieldy2=220, fieldw=30, fieldh=20, space=50; //Muestra los parámetros de posicionamiento de los cuadros de texto de tiempo y temporización
setLayout(null); administrador de diseño a nulo
setpanel=new Panel();
setpanel.setLayout(null);
setpanel.add(note1);
setpanel .add(nota2);
note1.setBounds(30, 100, 60, 20);
note1.setBackground(backcolor); > note1.setForeground (Color.negro);
note2.setBounds(30, 180, 60, 20);
note2.setBackground(backcolor); > note2.setForeground (Color.negro);
hlabel1=nueva etiqueta();
mlabel1=nueva etiqueta();
slabel1=nueva etiqueta( );
p>
hlabel2=nueva etiqueta();
mlabel2=nueva etiqueta();
slabel2=nueva etiqueta();
//Mostrar cuadro de texto para la hora actual
showhour=new TextField("00", 5);
showmin=new TextField("00", 5);
showsec=new TextField("00", 5
//Cuadro de texto para tiempo (hora, minuto, segundo)
sethour =nuevo Campo de Texto("00", 5);
setmin=nuevo Campo de Texto("00", 5);
setsec=nuevo Campo de Texto("00", 5); /p>
// cuando
La posición y el tamaño del cuadro de texto utilizado la vez anterior
setpanel.add(showhour
showhour.setBounds(fieldx, fieldy1, fieldw, fieldh); >
showhour.setBackground(Color.white);
//Agrega la unidad "hora" después del cuadro de texto
setpanel.add(hlabel1);
hlabel1 .setText("cuando");
hlabel1.setBackground(color de fondo);
hlabel1.setForeground(Color.negro);
hlabel1 .setBounds(fieldx fieldw 3, fieldy1, 14, 20);
fieldx=fieldx space;
//La posición y el tamaño del cuadro de texto de minutos de la hora actual p>
setpanel.add(showmin);
showmin.setBounds(fieldx, fieldy1, fieldw, fieldh);
showmin.setBackground(Color.white); p>
// Agrega la unidad "minutos" después del cuadro de texto
setpanel.add(mlabel1);
mlabel1.setText("minutos");
mlabel1.setBackground( backcolor);
mlabel1.setForeground(Color.black);
mlabel1.setBounds(fieldx fieldw 3, fieldy1, 14, 20); /p>
fieldx= fieldx space;
//La posición y tamaño del cuadro de texto en segundos del tiempo actual
setpanel.add(showsec); p>
showsec.setBounds(fieldx, fieldy1, fieldw, fieldh);
showsec.setBackground(Color.white);
//Agrega la unidad "segundos" después el cuadro de texto
setpanel.add (slabel1);
slabel1.setText("segundos");
slabel1.setBackground(backcolor); >
slabel1.setForeground(Color.black);
slabel1.setBounds(fieldx campow 3, fieldy1, 14, 20);
//La posición y el tamaño del cuadro de texto de la hora programada
setpanel.add(sethour);
sethour.setBounds(fieldx, fieldy2, fieldw, fieldh);
sethour.setBackground(Color.white);
//Agrega la unidad "hora" después del cuadro de texto
setpanel.add(hlabel2);
hlabel2.setText("cuando");
hlabel2.setBackground(backcolor);
hlabel2.setForeground(Color.black);
hlabel2. setBounds( fieldx fieldw 3, fieldy2, 14, 20);
fieldx=fieldx space;
//La posición y el tamaño del cuadro de texto de minutos cronometrados
setpanel.add(setmin);
setmin.setBounds(fieldx, fieldy2, fieldw, fieldh);
setmin.setBackground(Color.white);
// Agrega la unidad "minutos" después del cuadro de texto
setpanel.add(mlabel2);
mlabel2.setText("minutos");
mlabel2.setBackground( backcolor);
mlabel2.setForeground(Color.black);
mlabel2.setBounds(fieldx fieldw 3, fieldy2, 14, 20); p> fieldx= fieldx space;
//La posición y el tamaño del cuadro de texto de segundos cronometrados
setpanel.add(setsec);
setsec.setBounds (fieldx, fieldy2, fieldw, fieldh);
setsec.setBackground(Color.white);
//Agrega la unidad "segundos" después del cuadro de texto
setpanel.add( slabel2);
slabel2.setText("segundos");
slabel2.setBackground(color de fondo);
slabel2.setForeground( Color.black);
slabel2.setBounds(fieldx fieldw 3, fieldy2, 14, 20);
//Configura el botón de control del despertador (encendido, apagado)
o
nbutton=nuevo Botón("on");
offbutton=nuevo Botón("off");
setpanel.add(onbutton);
setpanel. agregar(botón apagado);
onbutton.setBounds(90, 180, 40, 20);
botón apagado.setBounds(140, 180, 40, 20); p> //Agrega algunas etiquetas de información adicional (encabezado, cola)
setpanel.add(info1);
info1.setBackground(backcolor);
info1 .setForeground(Color.azul);
info1.setBounds(50, 50, 150, 20);
setpanel.add(info2
info2); .setBackground(color de fondo);
info2.setForeground(Color.blue);
info2.setBounds(150, 280, 100, 20); /Agregue el panel al contenedor actual y establezca el tamaño y el color de fondo del panel
add(setpanel);
setpanel.setBounds(300, 1, 250, 420) ;
setpanel.setBackground(backcolor);
//Obtener el archivo de sonido
ipAu=getAudioClip(getDocumentBase(), "bells/仙剑.mid") ;
peligro=getAudioClip(getDocumentBase(), "bells/0.mid");
chirp=getAudioClip(getDocumentBase(), "bells/3.mid"); /p>
int xcenter, ycenter, s, m, h;
xcenter=145
ycenter=162; )cal.get(Calendario.SEGUNDO);
m=(int)cal.get(Calendario.MINUTO);
h=(int)cal.get(Calendario.HOUR_OF_DAY );
//Inicializar la posición del puntero
lastxs=(int)(Math.cos(s*3.14f/30-3.14f/2)*30 xcenter); p> p>
lastys=(int)(Math.sin(s*3.14f/30-3.14f/2)*30 ycenter);
lastxm=(int)(Math.cos(m*3.14f/30-3.14f/2)*25 xcenter);
lastym=(int)(Math.sin(m*3.14f/30 -3.14f/2)*25 ycentro);
lastxh=(int)(Math.cos((h*30 m/2)*3.14f/180-3.14f/2)*18 xcentro );
lastyh=(int)(Math.sin((h*30 m/2)*3.14f/180-3.14f/2)*18 ycenter);
lasts=s;
MediaTracker mt=new MediaTracker(this);//Crear objeto Tracke
clockp=getImage(getDocumentBase(), "Casual.png");
gif1=getImage(getDocumentBase(), "gif1.gif");
gif2=getImage(getDocumentBase(), "gif2.gif"); getImage(getDocumentBase(), "reloj6.gif");
reloj7=getImage(getDocumentBase(), "reloj7.gif");
mt.addImage(relojp, i ) ;
mt.addImage(gif1,i);
mt.addImage(gif2,i);
mt.addImage(clock6,i);
mt.addImage(clock7, i);
try{mt.waitForAll();}catch(InterruptedException e){} //Espera a que se complete la carga
resize(600, 420); //Establece el tamaño de la ventana
}
public void paint(Graphics g){//Anula el método paint()
int xh, yh, xm, ym, xs, ys, strike_times
int xcenter, ycenter
Cadena hoy
Entero gif_number;
p>
xcenter=148
ycenter=186
dat=nueva fecha(); .setTime(dat);
p>
//Leer la hora actual
s=(int)cal.get(Calendar.SECOND);
m=(int)cal.get(Calendar. MINUTO);
h=(int)cal.get(Calendar.
HOUR_OF_DAY);
today=df.format(dat);
//Posición del puntero
xs=(int)(Math.cos(s*3.14) f/30-3.14f/2)*30 xcenter);
ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*30 ycenter); p> p>
xm=(int)(Math.cos(m*3.14f/30-3.14f/2)*25 xcenter);
ym=(int)(Math.sin (m *3.14f/30-3.14f/2)*25 ycentro);
xh=(int)(Math.cos((h*30 m/2)*3.14f/180-3.14 f/ 2)*18 xcentro);
yh=(int)(Math.sin((h*30 m/2)*3.14f/180-3.14f/2)*18 ycentro);
p>//Establecer fuente y color
g.setFont(F
g.setColor(fgcol
); g.setColor( fgcol2);
g.setColor(getBackground());
g.fillRect(1, 1, 634, 419);
g.drawImage( relojp, 75, 110, esto);
g.drawImage(reloj6, 83, 280, esto);
g.setColor(fgcol2
g.setColor(getBackground());
g.setColor(fgcol2);
//Muestra año, mes, día y hora numéricamente
g.drawString(hoy, 55, 415);
g.drawLine(xcenter, ycenter, xs, ys);
g.setColor(fgcol); >
//Dibujar puntero
g.drawLine(xcenter, ycenter-1, xm, ym);
g.drawLine(xcenter-1, ycenter, xm, ym
g.drawLine(xcenter, ycenter-1, xh, yh
g.drawLine(xcenter-1, ycenter, xh, yh);
lastxs=xs;lastys=ys;
lastxm=xh;lastym=ym;
lastxh=xh;lastyh=yh;
última fecha= hoy;
if(hlt;12)hh=h; //Convierte la hora del sistema al rango 0-11
else hh=h-12;
if (hh==0) strike_times=12 //Calcula el número de sonidos del reloj
els
e strike_times=hh;
if((s==0amp;amp;m==0)||flag){//Determina si es la hora y si es una actualización activa
if(counterlt; strike_times){
flag=true;
g.drawImage(gif2, 115, 35, esto
if); (lasts!= s){
if(strike){
contador ;
peligro.play() //Reproducir sonido de alarma
}
if(strike)strike=false;
else strike=true
}
}
else {
contador=0
bandera=false
}
}
else p>
g.drawImage(gif1, 115, 35, this);
int timedelta; //Registra la diferencia horaria entre la hora actual y la hora de la alarma
Integer currh, currm, currs; //Registra las horas, minutos y segundos actuales respectivamente
timeNow=new Date();
curr=new Integer(timeNow. getHours());
currm=new Integer(timeNow.getMinutes());
currs=new Integer(timeNow.getSeconds());
//Determine si actualizar la hora de visualización actual, esto puede evitar que el cuadro de texto parpadee
if(currh.intValue()!=Integer.valueOf(showhour.getText()).intValue())
showhour.setText(currh.toString());
if(currm.intValue()!=Integer.valueOf(showmin.getText()).intValue())
showmin .setText(currh.toString());
if(currs.intValue()!=Integer.valueOf(showsec.getText()).intValue()) p>
showsec.setText(currh.toString());
if(setalerm){ //Determina si el despertador está configurado
<p> //Juzga si la hora actual es la hora establecida por el despertador
if((currh.intValue()==fixh)amp;amp;(currm.intValue()==fixm) amp;amp (currs.intValue()==fixs))
clickflag=true;
timedelta=currm.intValue()*60 currs.intValue()-fixm* 60-fixs;
if((timedeltalt; 60)amp; amp; (clickflag==true)){ //Si la diferencia entre la hora actual y el despertador llega a 60 segundos
chirp.play() ;
g.drawImage(reloj7, 83, 280, esto
}
else{
chirp.stop() ;
clickflag=false;
}
}
if(¡dura!=s)
ipAu .play();//Reproducir sonido de tick
lasts=s;
if(canPaint){
t = 1;
if(t==12)t=0;
}
canPaint=false
dat=null;
}
inicio vacío público(){
if(temporizador==null){
temporizador=nuevo hilo(este) ; //Crear una instancia del temporizador
timer.start();
}
}
public void stop(){
temporizador= nulo;
}
ejecución pública vacía(){
while(temporizador!=null){
try{timer.sleep (timeout);}catch(InterruptedException e){}
canPaint=true;
repaint(); //Actualiza la pantalla
}
timer=null;
}
public void update(Graphics g){ //método update() que utiliza tecnología de doble buffer
if( offscreen_buf==null)
offscreen_buf=createImage(600, 420);
Gráficos offg=offscreen_buf.get
Gráficos();
offg.clipRect(1, 1, 599, 419);
paint(offg
Gráficos ong=getGraphics();
ong.clipRect(1, 1, 599, 419);
ong.drawImage(offscreen_buf, 0, 0, esto
} p>
p>
acción booleana pública (Evento evt, Objeto arg){ // Función de manejo de eventos del botón
if(evt.target instancia del botón){
String lable=(String )arg;
if(lable.equals("on")){
setalerm=true;
//Obtener la entrada tiempo
fixh=Integer.valueOf(sethour.getText()).intValue()
fixm=Integer.valueOf(setmin.getText()).intValue(); /p>
fixes=Integer.valueOf(setsec.getText()).intValue();
clickflag=false;
}
si (lable.equals( "off")){
setalerm=false;
if(chirp!=null)
chirp.stop();
clickflag=false;
}
devuelve verdadero
}
devuelve falso;
}
}