La Red de Conocimientos Pedagógicos - Currículum vitae - programa de despertador java

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

setpanel.add(showmin);

showmin.setBounds(fieldx, fieldy1, fieldw, fieldh);

showmin.setBackground(Color.white);

// 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);

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>

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>

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

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())

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>

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;

}

}