programa de despertador java
importar java.util.*;
importar java.awt.*;
importar java.applet.*;
importar java.text.*;
la clase pública AlarmClock extiende el 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,chirp;
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");//Establecer el formato de hora
String lastdate=df.format(dummy);
Font F=new Font("TimesRoman",Font.PLAIN,14);//Establecer el formato de fuente
Fecha dat=null;
Fecha horaNow=null;
Color fgcol=Color.blue;
Color fgcol2=Color. darkGray;
Panel setpanel;
Color backcolor=Color.pink;
TextField showhour,showmin,showsec,sethour,setmin,setsec;//Mostrar el cuadro de texto de hora actual y cuadro de texto cronometrado
Botón activado;
Botón desactivado;
Etiqueta hlabel1,mlabel1,slabel1,hlabel2,mlabel2,slabel2;// Al mostrar la unidad de tiempo Etiqueta utilizada (hora, minuto, segundo)
Etiqueta info1=nueva Etiqueta("Bienvenido a usar el despertador recordatorio programado"),info2=nueva Etiqueta(""); p>
Etiqueta nota1 =nueva Etiqueta("Hora actual:"),nota2=nueva Etiqueta("Configuración del despertador:"
");
boolean setalerm=false,clickflag=false;//Determinar si sonar y vibrar
int fixh=0,fixm=0,fixs=0;//Grabar Temporización 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 sincronización
setLayout(null); //Inicializa el administrador de diseño. como nulo
setpanel=new Panel();
setpanel.setLayout(null);
setpanel.add(nota1);
setpanel.add(nota2);
note1.setBounds(30,100,60,20);
note1.setBackground(color de fondo);
note1.setForeground ( Color.negro);
note2.setBounds(30,180,60,20);
note2.setBackground(color de fondo);
note2.setForeground(Color . negro);
hlabel1=nueva etiqueta();
mlabel1=nueva etiqueta()
slabel1=nueva etiqueta();
hlabel2=new Label();
mlabel2=new Label();
slabel2=new Label();
//Muestra el actual cuadro de texto de hora
showhour=new TextField("00",5);
showmin=new TextField("00",5);
showsec= new TextField("00",5);
//Cuadro de texto para el tiempo (hora, minuto, segundo)
sethour=new TextField("00",5); /p>
setmin=new TextField("00",5);
setsec=new TextField("00",5);
//Usar la hora actual La posición y el tamaño del cuadro de texto
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("时");
hlabel1.setBackground(backcolor);
hlabel1.setForeground(Color. negro);
hlabel1.setBounds(fieldx+fieldw+3,fieldy1,14,20);
fieldx=fieldx+space;
//Actual La posición y el tamaño del cuadro de texto de minutos de la hora
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("分");
mlabel1.setBackground(backcolor);
mlabel1.setForeground(Color.black);
mlabel1. setBounds(fieldx+ fieldw+3,fieldy1,14,20);
fieldx=fieldx+space;
//La posición y el tamaño del cuadro de texto de segundos de la hora actual
setpanel.add(showsec);
showsec.setBounds(fieldx,fieldy1,fieldw,fieldh);
showsec.setBackground(Color.white);
//Agrega la unidad "segundos" después del cuadro de texto
setpanel.add(slabel1);
slabel1.setText("segundos"); p>
slabel1. setBackground(color de fondo);
slabel1.setForeground(Color.negro);
slabel1.setBounds(fieldx+fieldw+3,fieldy1,14,20 );
fieldx=50;
//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 texto cuadro
setpanel .add(hlabel2);
hlabel2.setText("cuando");
hlabel2.setBackground(b
ackcolor);
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("分");
mlabel2.setBackground(backcolor);
mlabel2.setForeground(Color .black );
mlabel2.setBounds(fieldx+fieldw+3,fieldy2,14,20);
fieldx=fieldx+space;
// Tiempo La posición y el tamaño del cuadro de texto de segundos
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(backcolor);
slabel2.setForeground(Color.negro);
slabel2.setBounds( fieldx+fieldw+ 3,fieldy2,14,20);
//Configura el botón de control del despertador (encendido, apagado)
onbutton=new Button("on");
offbutton=nuevo Botón("off");
setpanel.add(onbutton);
setpanel.add(offbutton);
onbutton.setBounds( 90,180,40,20);
offbutton.setBounds(140,180,40,20);
//Agrega algunas etiquetas de información adicional (encabezado, cola)
setpanel.add(info1);
info1.setBackground(color de fondo);
info1.setForeground(Color.blue);
> info1.setBounds(50,50,150,20);
setpanel.add(info2);
info2.setBackground(color de fondo);
info2.setForeground (Color.blue);
info2.setBounds(150,280,100,20);
//Agrega el panel al contenedor actual y establece el tamaño y el color de fondo del panel p>
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") ;
p>
chirp=getAudioClip(getDocumentBase(),"bells/3.mid");
int xcenter,ycenter,s,m,h; p>
xcenter=145 ;
ycenter=162;
s=(int)cal.get(Calendario.SECOND);
m= (int)cal.get(Calendar .MINUTE);
h=(int)cal.get(Calendar.HOUR_OF_DAY);
//Inicializa la posición del puntero
lastxs=(int)( Math.cos(s*3.14f/30-3.14f/2)*3xcenter);
lastys=(int)(Math.sin(s*3.14 f/30-3.14f/2 )*3ycenter);
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+ycenter);
lastxh=(int)(Math. cos((h*3m /2)*3.14f/180-3.14f/2)*18+xcenter);
lastyh=(int)(Math.sin((h*3 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");
reloj6=getImage(getDocumentBase(),"clock6.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++);
prueba{mt.waitForAll ();}catch(InterruptedException e){};//Esperar a que se complete la carga
resize(600,420);//Establecer el tamaño de la ventana
}
public void paint(Graphics g){// Anular el método paint()
int xh,yh,xm,ym,xs,ys,strike_times;
int xcenter,ycenter ;
Cadena hoy;
Número gif_entero;
xcenter=148;
ycenter=186;
dat= new Date();
cal.setTime(dat);
//Leer la hora actual
s=(int)cal.get( Calendario. SEGUNDO);
m=(int)cal.get(Calendar.MINUTE);
h=(int)cal.get(Calendar.HOUR_OF_DAY);
today=df.format(dat);
//Posición del puntero
xs=(int)(Math.cos(s*3.14f/30-3.14f /2 )*3xcenter);
ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*3ycenter);
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+ycenter);
xh=(int)(Math.cos((h*3m/2)*3.14f/180-3.14f/2 )* 18+xcenter);
yh=(int)(Math.sin((h*3m/2)*3.14f/180-3.14f/2)*18+ycenter);
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(clockp,75,110,this);
g.drawImage(clock6,83,280,this);
g.setColor(fgcol2);
g.setColor(getBackground());
g.setColor(fgcol2);
//Con números Muestra el año, mes, día y hora
g.drawString(today,55,415);
g.drawLine(xcenter,ycenter,xs,ys);
g.setColor(fgcol);
//Dibuja el 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;
lastdate=today;
if(h<12)hh=h;//Convierte la hora del sistema al rango 0-11
else hh=h-12;
if(hh==0) strike_times=12;//Calcular el número de sonidos del reloj
else strike_times=hh;
if((s==0&&m==0)||flag){//Determine si es la hora y si se actualiza activamente
if(counter bandera =true; g.drawImage(gif2,115,35,this); if(lasts!=s){ if(strike){ counter++; peligro.play();//Reproducir sonido de alarma } if(strike) )strike=false; else strike=true; } } else { contador =0; flag=false; } } else g.drawImage (gif1,115,35, this); int timedelta;//Registra la hora actual y la configuración de la alarma Diferencia horaria de horas Entero curr, currm, currs; //Registra las horas, minutos y segundos actuales respectivamente timeNow=new Date(); currh =nuevo entero(timeNow.getHours()); currm=nuevo entero(timeNow.getMinutes()); currs=nuevo entero(timeNow.getSeconds()); //Determine si actualizar la hora mostrada actualmente, para 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 //Juzga si la hora actual es la hora establecida por el despertador if((currh.intValue()==fixh)&&(currm.intValue()==fixm)&&(currs .intValue()==fixs )) clickflag=true; timedelta=currm.intValue()*6currs.intValue()-fixm*60-fixs; if ((timedelta<60)&&(clickflag==true)){ //Si la diferencia entre la hora actual y la del despertador llega a 60 segundos chirp.play() ; g.drawImage (reloj7,83,280,este); } else{ chirp.stop(); clickflag=false; } } if(lasts!=s) ipAu.play ();//Reproducir sonido de tictac lasts=s; if(canPaint){ t+=1; if (t==12)t=0; } canPaint=false; dat=null; } p> inicio vacío público(){ if(timer==null){ timer=new Thread(this);//Crear instancia del temporizador timer.start(); } p> } parada de vacío público(){ timer=null; } ejecución de vacío público () { while(timer!=null){ try{timer.sleep(timeout);}catch(InterruptedException e){} canPaint =true ; repaint();//Actualizar la pantalla } timer=null; } public void update(Graphics g){ //método update() usando tecnología de doble buffer if(offscreen_buf==null) offscreen_buf=createImage(600,420); Gráficos offg=offscreen_buf.getGraphics(); offg.clipRect(1,1,599,419); paint(offg); Gráficos ong =getGraphics(); ong.clipRect(1,1,599,419); ong.drawImage(offscreen_buf,0,0,this); } acción booleana pública(Evento evt,Objeto arg){ //Función de procesamiento de eventos del botón if(evt.target instancia del botón){ Etiqueta de cadena =( String)arg; if(lable.equals("on")){ setalerm=true; //Obtener hora de entrada fixh=Integer.valueOf(sethour.getText()).intValue(); fixm=Integer.valueOf(setmin.getText()).intValue(); fixes=Integer.valueOf(setsec.getText()).intValue(); clickflag=false; } if(lable .equals( "apagado")){ setalerm=false; if(chirrido!=n ull) chirp.stop(); clickflag=false; } devuelve verdadero; } devuelve falso; } }