Páginas

NIMADRES

Hacer un Reloj en Java (Gráfico)

Este programa es una sencilla aplicación en la cual pueden robarse la hora del sistema(hora actual del sistema operativo) e imprimirlo cada segundo, logrando esto implementado la clase Runnable de hilos en java.
mas información sobre hilos en: http://monillo007.blogspot.com/2008/01/hilos-en-java-threads-parte-1.html

Esta aplicación esta hecha en bloc de notas, así que no es necesario utilizar un  IDE como netBeans o Eclipse, solo basta con el compilador, ademas que esta hecho de manera gráfica para verse mas dinámico.
De esta manera se vera si es que lo compilas en Windows Xp, sino quedara tal y como se ven las ventanas del sistema operativo gracias a la herramienta: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

import javax.swing.*;
import java.util.*;
import java.awt.*;
public class Reloj extends JFrame{
    public Calendar date;
    public int horas;
    public int minutos;
    public int segundos;
    private JPanel panel =  new JPanel(new GridLayout(2, 1, 30, 0));
    private JPanel panel2 =  new JPanel(new FlowLayout());
    private JLabel lblMexico;
    private JLabel lblZonasHorarias;
    public Reloj(){
        setTitle("NIMADRES");
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(200,200,300,200);
        setResizable(false);
        
        Mexico mexico = new Mexico();
        Thread r = new Thread(mexico);
        lblMexico = new JLabel(" MEXICO ");
        lblMexico.setFont(new java.awt.Font("Tahoma", 1, 30));
        
        panel.setBounds(100,150,200,50);
        panel.setBackground(java.awt.Color.ORANGE);
        panel.add(lblMexico,BorderLayout.SOUTH);
        panel.add(mexico,java.awt.BorderLayout.CENTER);
        
        lblZonasHorarias = new JLabel("Reloj en Java");
        lblZonasHorarias.setFont(new java.awt.Font("Tahoma", 1, 30));
        
        panel2.setBackground(java.awt.Color.WHITE);
        panel2.add(lblZonasHorarias,BorderLayout.CENTER);
        add(panel,BorderLayout.CENTER);
        add(panel2,BorderLayout.NORTH);
        r.start();
    }
    class Mexico extends JLabel implements Runnable{
        @Override
        public void run() {
        setFont(new java.awt.Font("Tahoma", 3, 60));
        while(true){
            try{
                Thread.sleep(100);
                date = Calendar.getInstance();
                horas = date.get(Calendar.HOUR);
                minutos = date.get(Calendar.MINUTE);
                segundos = date.get(Calendar.SECOND);
                setText(horas+":"+minutos+":"+segundos);
                repaint();
            }
            catch(InterruptedException e){}
            }
        }
    }
    public static void main(String args[]){
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e) {}
        java.awt.EventQueue.invokeLater(new Runnable(){
            @Override
            public void run(){
                new Reloj().setVisible(true);
            }
        });
    }
}
Al final solo se guarda el archivo tal y como se llama la clase Reloj.java y lo compilan y ejecutan en la consola.


5 comentarios:

  1. Muchas gracias me sirvio de mucho, agradezco tu codigo.

    ResponderEliminar
    Respuestas
    1. Gracias a ti, aquí estamos intentando ayudar en lo que se pueda!
      Un comentario es mas que suficiente para saber que esta pagina sirve de algo!

      Eliminar
  2. Gracias esta muy bien explicado el ejemplo hay pocos foros en español de programación en java y los pocos que hay los tutoriales o ejemplos no estan bien explicados Gracias.

    ResponderEliminar
  3. muchas gracias se agradese

    ResponderEliminar
  4. Gracias, me sirvio para darme una idea... !

    ResponderEliminar