Red de conocimiento informático - Consumibles informáticos - Código fuente de la aplicación despertador

Código fuente de la aplicación despertador

importar java.util.*;

importar java.awt.*;

importar java.applet.*;

importar java.text.*;

La clase pública AlarmClock extiende Applet para implementar Runnable

{

Temporizador de subproceso = null//Crear temporizador de subproceso

Reloj de imagen, gif1, gif2, reloj 6, reloj 7; //clockp: carcasa del despertador, despertador y pájaro.

int s, m, h, hh;

AudioClip ipAu, peligro, chirrido

boolean canPaint = true

Bandera booleana = false;

taque booleano = verdadero

int contador = 0;

int dura

Imagen fuera de pantalla _ buf = nulo

int dura

p>

int i, j, t = 0;

int tiempo de espera = 166

int lastxs; =0, lastys=0, lastxm=0, lastym=0, lastxh=0, lastyh = 0;

Fecha ficticia = new Date() //Generar objeto de datos

Calendario gregoriano cal = nuevo calendario gregoriano();

formato de fecha simple df = nuevo formato de fecha simple(" aaaa MM DD HH:MM:ss "); //Establece el formato de hora

string last date = df format(dummy);

p>

Fuente F = new Font("TimesRoman", font.plain, 14 //Establecer formato de fuente

Fecha dat = null

Fecha horaAhora = null

Color fgcol = Color.blue

color fg col 2 = color gris oscuro;

Panel de configuración del panel;

Color backcolor = Color.pink

TextField showhour, showmin, showsec, sethour, setmin, setsec//Muestra el cuadro de texto de la hora actual y el texto programado caja.

Botón encendido;

Botón apagado;

Etiqueta hlabel1, mlabel1, slabel1, hlabel2, mlabel2, slabel2 // Etiqueta utilizada al mostrar unidades de tiempo ( horas, minutos, segundos).

Información de etiqueta 1 = nueva etiqueta ("Bienvenido al despertador"), info2 = nueva etiqueta (" "); Nota de etiqueta 1 = nueva etiqueta ("Hora actual: "), note2 = nueva etiqueta ("Configuración del despertador:");

boolean setalerm=false, clickflag = false//Determina si sonará o vibrará.

int fixh=0, fixm=0, fixs = 0; //Registra la hora de la alarma

Public void init()//Método de inicialización

{

Entero gif _ número

int fieldx=50, fieldy1=120, fieldy2=220, fieldw=30, fieldh=20, space = 50//Mostrar cuadro de texto de tiempo y temporización parámetros de posicionamiento.

set layout(null); //Inicializa el administrador de diseño en nulo.

establecer panel = nuevo panel();

establecer panel .establecer diseño(nulo);

establecer panel . >

setpanel.add(nota 2);

note1.setBounds(30, 100, 60, 20);

nota 1. establecer fondo (color de fondo);

nota 1. establecer primer plano(color. negro);

nota2.setBounds(30, 180, 60, 20);

nota 2. establecer fondo( color de fondo);

nota 2. set foreground(color . negro);

hlabel 1 = nueva etiqueta();

mlabel 1 = nueva etiqueta( );

slabel 1 = nueva Etiqueta();

hlabel 2 = nueva Etiqueta();

ml Abel 2 = nueva Etiqueta();

p>

slabel 2 = new Label();

//Muestra el cuadro de texto de la hora actual.

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

//El actual Ubicación y tamaño del cuadro de texto de hora.

establecer panel . add(mostrar hora);

mostrar hora.setBounds(fieldx, fieldy1, fieldw, campo h);

mostrar fondo (. color . white);

//Agrega la unidad "cuando" después del cuadro de texto.

establecer panel . add(hlabel 1);

hlabel 1 . settext(" cuando ");

hlabel 1. establecer primer plano (color. negro);

hlabel 1. establecer límites (campo x+campo w+3, campoy1, 14, 20);

fieldx = fieldx+space;

//La posición y el tamaño del cuadro de texto de minutos de la hora actual.

establecer panel . add(mostrar min);

showmin.setBounds(fieldx, fieldy1, fieldw, campo h);

mostrar establecer fondo ( color . white);

//Agrega la unidad "minutos" después del cuadro de texto.

establecer panel . add(mlabel 1);

mlabel 1 . settext(" puntos ");

mlabel 1 .

mlabel 1. establecer primer plano (color. negro);

mlabel 1. establecer límites (campo x+campo w+3, campoy1, 14, 20);

fieldx = fieldx+space;

//La posición y el tamaño del segundo cuadro de texto en el momento actual.

establecer panel . add(mostrar seg);

showsec.setBounds(fieldx, fieldy1, fieldw, campo h);

mostrar establecer fondo ( color . white);

//Agrega la unidad "segundos" después del cuadro de texto.

establecer panel. add(slabel 1);

Slabel1.setText("segundos");

establecer fondo (color de fondo);

etiqueta 1. establecer primer plano(color. negro);

etiqueta 1. establecer límites(campo x+campo w+3, campoy1, 14, 20);

fieldx = 50

//La posición y el tamaño del cuadro de texto de la hora programada

set panel. fieldx, fieldy2, fieldw, field h);

sethour. set background(color. white);

//Agrega la unidad "cuando" después del cuadro de texto.

establecer panel . add(HL Abel 2);

hlabel 2 . settext(" cuando ");

hlabel 2 . ;

hetiqueta 2. establecer primer plano(color . negro);

hetiqueta 2. establecer límites(campo x+campo w+3, campo 2, 14, 20);

hlabel 2. p>

fieldx = fieldx+space;

//La posición y el tamaño del cuadro de texto de los minutos de sincronización

set panel add(. setmin);

setmin.setBounds(fieldx, fieldy2, fieldw, campo h);

setmin.set background(color. white);

// Agregue la unidad "minutos" después del cuadro de texto.

establecer panel . add(ml Abel 2);

mlabel 2 . settext(" puntos ");

ml Abel 2 . );

ml Abel 2. establecer primer plano (color . negro);

mlabel 2. establecer límites (campo x+campo w+3, campo 2, 14, 20);

fieldx = fieldx+space;

//La posición y el tamaño del cuadro de texto de segundos de tiempo

set panel . >

setsec.setBounds(fieldx, fieldy2, fieldw, field h);

setsec.set background(color. white);

//Agrega la unidad "segundos" después del cuadro de texto ".

establecer panel. add(slabel 2);

Slabel2.setText("segundos");

establecer fondo (color de fondo);

etiqueta 2. establecer primer plano (color. negro);

etiqueta 2. establecer límites (campo x+campo w+3, campo 2, 14, 20);

//Configurar botón de control del despertador (encendido, apagado)

Botón On =Nuevo botón (" on ");

Botón Off = Nuevo botón (" off ");

p>

añadir (botón de activación);

panel de configuración .

botón de activación.setBounds(90, 180); , 40, 20);

offbutton.setBounds(140, 180, 40, 20);

//Agrega algunas etiquetas de información adicional (encabezado, pie de página)

establecer panel .add(info 1);

info 1 .

info1 .setBounds(50, 50, 150, 20);

establecer panel .add(info 2);

establecer fondo (color de fondo); /p>

info 2. set foreground(color. blue);

info2.setBounds(150, 280, 100, 20);

//Añadir el panel a el contenedor actual y establezca el tamaño del panel y el color de fondo.

add(establecer panel);

setpanel.setBounds(300, 1, 250, 420);

establecer fondo (color de fondo);

//Obtener el archivo de sonido

ipau = getaudiolip(getdocumentbase(), "bells/xianjian . mid));

danger = getAudioClip(getDocumentBase( ) , "campanas/0 . mid));

chirp = getAudioClip(getDocumentBase(), "campanas/3 . mid");

int xcenter, ycenter, s, m , h;

xcentro = 145;

y centro = 162

s=(int)cal.get(calendario.segundo);

m=(int)cal.get(calendario.minuto);

h=(int)cal.get(calendario.

hora del día);

//Inicializar posición del puntero

último xs =(int)(math . cos(s * 3.14f/30-3.14f/2)* 30 +xcenter);

lastys =(int)(math . sin(s * 3.14f/30-3.14f/2)* 3y center);

lastxm =( int)(math . cos(m * 3.14f/30-3.14f/2)* 25+xcenter);

lastym =(int)(math . sin(m * 3.14f/30-3.14 f/2)* 25+y centro);

último xh =(int)(matemáticas. cos((h * 3m/2)* 3.14f/180-3.14f/2)* 18+xcenter);

lastyh =(int)(math . sin((h * 3m/2)* 3.14f/180-3.14f/2)* 18+y center);

lasts = s;

media tracker mt = new media tracker(this); //Crear objeto Tracke

reloj p = getimage(getdocumentbase()," Casual.png");

gif 1 = getImage(getDocumentBase(), "gif 1 . gif");

gif2 = getImage(getDocumentBase(), "gif 2 . gif ));

reloj 6 = getImage(getDocumentBase(), " reloj 6 . gif ");

reloj 7 = getImage(getDocumentBase(), " reloj 7 . gif "); ;

mt.addImage(clockp,i++);

mt.addImage(gif1,i++);

mt.addImage(gif2,i++);

mt.addImage(clock6,i++);

mt.addImage(clock7,i++);

Intenta { mt . excepción e){ }; //Espera a que se complete la carga.

Ajustar tamaño (600, 420); //Establecer el tamaño de la ventana

}

Pintura de vacío público (Gráficos g){// Anular la pintura ( ) método .

int xh, yh, xm, ym, xs, ys, strike _ times

int xcenter, ycenter

Cadena de hoy;

Entero gif_número

xcenter = 148;

y center = 186

dat = nueva fecha(); .settime(dat);

//Leer la hora actual

s=(int)cal.get(calendar.segundo);

m =( int)cal.get(calendario.minuto);

h=(int)cal.get(calendario.

hora del día);

hoy = df format(dat);

//Posición del puntero

xs = (int)(math . cos( s * 3.14f/30-3.14f/2)* 3xcenter);

ys =(int)(matemáticas . sin(s * 3.14f/30-3.14f/2)* 3 y centro);

XM =(int)(math . cos(m * 3.14f/30-3.14f/2)* 25+xcenter);

ym =(int )(matemáticas . sin(m * 3.14f/30-3.14f/2)* 25+y centro);

xh =(int)(matemáticas . cos((h * 3m/2 )* 3.14f/180-3.14f/2)* 18+xcenter);

yh =(int)(matemáticas . sin((h * 3m/2)* 3.14f/180- 3.14f/2)* 18+y center);

//Establecer fuente y color

g set font(F)

g . color(fg col);

g. establecer color(fg col 2);

g establecer color(obtener fondo());

g. fillRect(1, 1, 634, 419);

g.drawImage(relojp, 75, 110, esto);

g.drawImage(reloj 6, 83, 280, esto); ) );

g . establecer color(fg col 2);

g establecer color(obtener fondo()); fg col 2);

//Los números muestran el año, mes, día y hora.

g . cordón (hoy 55415);

g.drawLine(xcenter, ycenter, xs, ys);

g. ;

//Puntero de dibujo

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 = xslastys = ys

lastxm = xhlastym = ym

lastxh = xhlastyh = yh

última fecha = hoy;

p>

if(h & lt; 12)hh = h; //Convierte la hora del sistema al rango de 0-11.

else hh = h-12;

if(hh == 0)strike _ times = 12; //Calcula el número de horas.

else strike _ times = hh

if((s == 0 & amp; & ampM==0)||flag){//Determina si es puntual y si actualizar activamente.

if(counter & lt; strike_times){

flag = true

g.drawImage(gif2, 115, 35, esto

);

if (continua!=s){

if (strike){

counter++;

peligro play() // Toca la alarma. tono

}

if(strike)strike = false

si no strike = true

}

}

En caso contrario {

contador = 0

bandera = false

}

}

Otros

g.drawImage(gif1, 115, 35, this);

int timedelta//Registra la diferencia horaria entre la hora actual y la hora de la alarma.

Entero curr, currm, currs // registra la hora, minuto y segundo actuales respectivamente.

hora ahora = nueva fecha();

currh = nuevo entero(hora ahora. obtener horas()); . get minutes());

currs = new Integer(time now . get segundos());

//Determina si se actualiza la hora que se muestra actualmente para evitar cuadros de texto frecuentes. las apariencias destellan.

if(currh.intValue()!= entero . valor de(mostrar hora . gettext()).intValue())

mostrar hora . );

if(currm.intValue()!= entero . valor de(show min . gettext()).intValue())

show min . ());

if(currs.intValue()!= entero. valor de(showsec. gettext()).intValue())

showsec(currh. tostring. ());

If(setalerm){ //Determina si la alarma está activada.

//Determina si la hora actual es la hora establecida por el despertador.

if((currh . int value()= = fixh)& amp;& amp(currm . int value()= = fixm)& amp;& amp(currs.intValue()==arreglos ))

clickflag = true

delta de tiempo = currm .int value()* 6currs .int value()-fixm * 60-fixs;

if((time delta <60)&&(clickflag==true)){ //Si la hora actual es 60 segundos diferente de la del despertador,

chirp play();

p>

g.drawImage(reloj 7, 83, 280, esto);

}

De lo contrario {

chirrido . );

clickflag = false

}

}

if (¡continuo!=s)

ipau . play( ); //Reproducir ticks

last = s;

if(canPaint){

t+= 1; if( t = = 12)t = 0;

}

canPaint = false

dat = null

}

public void start(){

if(timer==null){

timer = nuevo hilo (este); // Crea una instancia del temporizador.

temporizador .start();

}

}

Sitio público vacío(){

temporizador = null

}

Ejecución de anulación pública(){

while(timer!=null){

Prueba {timer .sleep (timeout);}catch(excepción de interrupción e){}

canPaint = true

repaint(); //Actualiza la pantalla

}

timer = null

}

El método public void Update(Graphics g){//Update() que utiliza tecnología de doble almacenamiento en búfer.

if(offscreen_buf==null)

offscreen_buf=createImage(600, 420);

gráficos apagados = fuera de la pantalla _ buf .

offg.clipRect(1, 1, 599, 419);

Pintura (gases de escape);

gráficos ONG = obtener gráficos(); p >

ong.clipRect(1, 1, 599, 419);

ong.drawImage(offscreen_buf, 0, 0, esto);

Acción booleana pública (evento evt, objeto arg){//Manejador de eventos de botón.

if (instancia de destino del evento de botón){

String lable =(String)arg;

If (if(lable.equals ("on") ) {

setalerm = true

//Obtener la hora de entrada

fixh = integer . p>fixm = valor entero de(setmin. gettext()). int valor();

arreglos = valor entero de(setsec. gettext());

clickflag = false

}

If (if(lable.equals ("off")) {

setalerm = false

if (chirp!=null)

chirp stop();

clickflag = false

}

Devuelve verdadero

}

Devuelve falso

}

}