Pantalla
//Inicio Cronometro_Reloj.java
package paquetedelproyecto;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.util.Calendar;
public class Cronometro_Reloj extends JFrame {
JLabel tiempo;
public static String h0, m0, s0;
public Cronometro_Reloj() {
setTitle("Cronómetro Reloj");
setSize( 260, 104);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setLayout( new BorderLayout() );
//Etiqueta donde se colocara el tiempo
tiempo = new JLabel( h0+":"+m0+":"+s0 );
tiempo.setFont( new Font( Font.SERIF, Font.BOLD, 50 ) );
tiempo.setHorizontalAlignment( JLabel.CENTER );
tiempo.setForeground( Color.BLUE );
tiempo.setBackground( Color.WHITE );
tiempo.setOpaque( true );
add( tiempo, BorderLayout.NORTH );
setVisible( true );
Integer horas, minutos, segundos;
horas = Integer.parseInt(h0);
minutos = Integer.parseInt(m0);
segundos = Integer.parseInt(s0);
String hor=h0, min=m0, seg;
long t1, t2;
String st1, st2;
Calendar ahora1 = Calendar.getInstance();
t1 = ahora1.getTimeInMillis();
st1 = Long.toString(t1);
try {
//Mientras cronometroActivo sea verdadero entonces seguira
//aumentando el tiempo
while( true ) {
//La siguiente linea es para hacer un wait ayuda
//para la precisión del siguiente proceso.- demorar un segundo
Thread.sleep( 500 );
//Esto es lo que provoca la demorada del segundo exacto
Calendar ahora2 = Calendar.getInstance();
t2 = ahora2.getTimeInMillis();
st2 = Long.toString(t2);
if (st2.charAt(st2.length()-4)!=st1.charAt(st1.length()-4)) {
segundos += 1;
Calendar ahora3 = Calendar.getInstance();
t1 = ahora3.getTimeInMillis();
st1 = Long.toString(t1);
}
//fin de lo que provoca la demorada del segundo exacto
if ( segundos == 60 ) {
segundos=0;
minutos += 1;
}
if( minutos == 60 ) {
minutos = 0;
horas++;
}
//Los siguientes if's es para colocar el cero
//a los numeros menores a 9
if( horas < 10 ) hor = "0" + horas;
else hor = horas.toString();
if( minutos < 10 ) min = "0" + minutos;
else min = minutos.toString();
if( segundos < 10 ) seg = "0" + segundos;
else seg = segundos.toString();
tiempo.setText( hor + ":" + min + ":" + seg );
}
}catch(Exception e){}
}
//procedure principal
public static void reloj_main(String[] args)
{
h0="00";
m0="00";
s0="00";
//Lo siguiente agarrar en ejecución MS-DOS
//parámetros definidos separados por espacios
if (args.length > 0) {
h0 = args[0];
m0 = args[1];
s0 = args[2];
}
//
//Run Cronometro_Reloj()
new Cronometro_Reloj();
}
//
}//Fin Cronometro_Reloj.java
/* Archivo Fuente java con el método main(String[] args)
En SuPublicClassPrincipal.java incluir dentro de sus sentencias
import static paquetedelproyecto.Cronometro_Reloj.reloj_main;
public class SuPublicClassPrincipal {
public static void main(String[] args) {
//Llama al método
reloj_main(new String[0]);
}
}
*/
package paquetedelproyecto;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.util.Calendar;
public class Cronometro_Reloj extends JFrame {
JLabel tiempo;
public static String h0, m0, s0;
public Cronometro_Reloj() {
setTitle("Cronómetro Reloj");
setSize( 260, 104);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setLayout( new BorderLayout() );
//Etiqueta donde se colocara el tiempo
tiempo = new JLabel( h0+":"+m0+":"+s0 );
tiempo.setFont( new Font( Font.SERIF, Font.BOLD, 50 ) );
tiempo.setHorizontalAlignment( JLabel.CENTER );
tiempo.setForeground( Color.BLUE );
tiempo.setBackground( Color.WHITE );
tiempo.setOpaque( true );
add( tiempo, BorderLayout.NORTH );
setVisible( true );
Integer horas, minutos, segundos;
horas = Integer.parseInt(h0);
minutos = Integer.parseInt(m0);
segundos = Integer.parseInt(s0);
String hor=h0, min=m0, seg;
long t1, t2;
String st1, st2;
Calendar ahora1 = Calendar.getInstance();
t1 = ahora1.getTimeInMillis();
st1 = Long.toString(t1);
try {
//Mientras cronometroActivo sea verdadero entonces seguira
//aumentando el tiempo
while( true ) {
//La siguiente linea es para hacer un wait ayuda
//para la precisión del siguiente proceso.- demorar un segundo
Thread.sleep( 500 );
//Esto es lo que provoca la demorada del segundo exacto
Calendar ahora2 = Calendar.getInstance();
t2 = ahora2.getTimeInMillis();
st2 = Long.toString(t2);
if (st2.charAt(st2.length()-4)!=st1.charAt(st1.length()-4)) {
segundos += 1;
Calendar ahora3 = Calendar.getInstance();
t1 = ahora3.getTimeInMillis();
st1 = Long.toString(t1);
}
//fin de lo que provoca la demorada del segundo exacto
if ( segundos == 60 ) {
segundos=0;
minutos += 1;
}
if( minutos == 60 ) {
minutos = 0;
horas++;
}
//Los siguientes if's es para colocar el cero
//a los numeros menores a 9
if( horas < 10 ) hor = "0" + horas;
else hor = horas.toString();
if( minutos < 10 ) min = "0" + minutos;
else min = minutos.toString();
if( segundos < 10 ) seg = "0" + segundos;
else seg = segundos.toString();
tiempo.setText( hor + ":" + min + ":" + seg );
}
}catch(Exception e){}
}
//procedure principal
public static void reloj_main(String[] args)
{
h0="00";
m0="00";
s0="00";
//Lo siguiente agarrar en ejecución MS-DOS
//parámetros definidos separados por espacios
if (args.length > 0) {
h0 = args[0];
m0 = args[1];
s0 = args[2];
}
//
//Run Cronometro_Reloj()
new Cronometro_Reloj();
}
//
}//Fin Cronometro_Reloj.java
/* Archivo Fuente java con el método main(String[] args)
En SuPublicClassPrincipal.java incluir dentro de sus sentencias
import static paquetedelproyecto.Cronometro_Reloj.reloj_main;
public class SuPublicClassPrincipal {
public static void main(String[] args) {
//Llama al método
reloj_main(new String[0]);
}
}
*/
como haria para colocar los milisegundos???
ResponderEliminarGracias por comentar y disculpa por la tardanza en contestar (casi 3 años 🤣🤣🤣). Me pareció re-interesante tu propuesta tanto es así que hice un video con la solución, da clic aquí --)) https://www.youtube.com/watch?v=FgcCDHO8mFQ
Eliminar🧐 Ya me di cuenta que no es posible dar clic, entonces sería copia y pega, en un explorador de internet, la siguiente dirección --)) https://www.youtube.com/watch?v=FgcCDHO8mFQ
Eliminar