Red de conocimiento informático - Descarga de software - Código fuente de Java del cronómetro

Código fuente de Java del cronómetro

importar javax.swing.*;

importar excepción Java.awt.headless;

importar Java.awt.borderlayout;

importar diseño Java.awt.flow ;

Importar evento de acción Java .

Importar evento de acción Java . /p>

/**

*Temporizador pequeño

*/

La clase pública TimerFrame extiende JFrame {

estática privada final String INITIAL _ LABEL _ TEXT = " 00:00:00 000 ";

//Calcular el número de hilos

hilo de conteo privado = nuevo hilo de conteo();

// p>

//Registrar la hora de inicio del programa

inicio del programa largo privado = hora actual millis();

//El programa. queda suspendido desde el principio.

inicio de pausa larga privada = inicio del programa;

//Tiempo total de pausa del programa

pausa larga privadaCount = 0;

JLabel privado ETIQUETA = new JLabel(INITIAL _ LABEL _ TEXT);

Botón de inicio y pausa del jbutton privado = new jbutton(" start ");

botón de reinicio del jbutton privado = new jbutton(" reset "); ");

escucha de acción privada startPauseButtonListener = nueva acción oyente(){

acción de anulación pública realizada (evento de acción e){

if (hilo. detenido ) {

pauseCount =(sistema . hora actual millis()-pauseStart);

thread.stopped = false

startpausebutton settext(" pausa " ). ;

} De lo contrario {

pausa inicio = sistema . hora actual millis();

thread.stopped = true

startpausebutton . settext(" continuar ");

}

}

};

escucha de acción privada resetButtonListener = nueva escucha de acción() {

Acción de anulación pública realizada (evento de acción e){

pauseStart = programStart

pauseCount = 0;

thread.stopped = true

ETIQUETA . settext(INITIAL _ ETIQUETA _ TEXTO);

startpausebutton . ;

Public TimerFrame(título de cadena) lanza HeadlessException {

Super(Title);

setDefaultCloseOperation(EXIT_ON_CLOSE);

p>

setLocation(200, 200);

setResizable(false);

configurar borde();

configurar etiqueta();

configurar borde();

configurar etiqueta();

p>

setupButtonsPanel();

startpausebutton .

botón de reinicio.

ener(escucha del botón de reinicio);

thread .start(); //El hilo de conteo siempre está en ejecución.

}

//Agregar un borde al panel de formulario

Private void setupBorder() {

Panel de contenido de JPanel = nuevo JPanel ( new BorderLayout());

panel de contenido. set border(border factory. createemptyborder(5, 5, 5, 5));

this.setContentPane(panel de contenido);

}

//Botones de configuración

Private void setupButtonsPanel() {

Panel JPanel = nuevo JPanel(nuevo diseño de flujo() );

panel . add(startPauseButton);

panel . >

}

//Etiqueta de configuración

Configuración de vacío privado() {

etiqueta alineación horizontal (constantes de oscilación. centro); >

label.setFont(new font(label.getFont().getName(), label.getFont().getStyle(), 40));

this.add(label,BorderLayout.

center);

}

//Entrada de programa

Public static void main(String[] args) {

Pruebe {

administrador de interfaz de usuario . setlookandfeel(administrador de interfaz de usuario . getsystemlookandfeelclassname());

} catch (Excepción e) {

e .

}

Timerframe = new timerframe("temporizador pequeño");

frame pack();

frame set visible(true);

}

Clase privada Counting Thread extiende el hilo {

public boolean detenido = true

Private CountingThread() {

setDaemon(true);

}

@override

Ejecución de vacío público(){

mientras (verdadero) {

Si (! Detenido){

largo transcurrido = tiempo actual millis()-program start-pauseCount;

label.setText(formato (transcurrido). ));

}

Prueba {

sleep(17); //Haz que el reloj parezca más caótico

} catch ( Excepción interrumpida e) {

e . printstacktrace();

salir(1); >

}

//Formato milisegundos

Formato de cadena privada (de larga duración) {

int horas, minutos, segundos, mili;

milli =(int)(transcurrido 1000);

transcurrido = transcurrido/1000;

segundo = (int)(tiempo transcurrido 60);

transcurrido = transcurrido/60;

minuto = (int)(tiempo 60);

transcurrido = transcurrido/60;

hora = (int ) (60 aprobados);

Formato de cadena de retorno (" 02d: 02d: 02d 03d ", hora, minuto, segundo, milímetro

}

}

}

Por favor acepte, gracias.