En esta práctica vamos a implementar un cronómetro con horas, minutos y segundos. Los dígitos son imágenes.El cronómetro t...
CronometroThread.javaimport   java.awt.event.ActionEvent;import   java.awt.event.ActionListener;import   javax.swing.Image...
private void mostrarInfoCrono(){       for(int i = 0; i < lbl_digitos.length; i++) {              if(crono[i] != :){      ...
//--- EVENTOS ---       @Override       public void actionPerformed(ActionEvent arg0) {              // TODO Auto-generate...
Upcoming SlideShare
Loading in...5
×

Java Thread Cronometro

1,061

Published on

Published in: Technology, Art & Photos
1 Comment
0 Likes
Statistics
Notes
  • Es una práctica muy buena, sobre todo para principiantes como yo.
    Me gustaría conseguir las imágenes, podrías publicarlas?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
1,061
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Java Thread Cronometro"

  1. 1. En esta práctica vamos a implementar un cronómetro con horas, minutos y segundos. Los dígitos son imágenes.El cronómetro tiene dos botones: o Un botón para arrancar y pausar. o Un botón para reiniciar todo a cero.FrameListener.javaimport java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class FrameListener extends WindowAdapter { public void windowClosing(WindowEvent e){ System.exit(0); }} bitCoach::Juan Bautista Cascallar Lorenzo
  2. 2. CronometroThread.javaimport java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JLabel;public class CronometroThread extends JPanel implements Runnable, ActionListener { private static final long serialVersionUID = 3287496534931916605L; //Atributos Thread crono_hilo = null; private boolean sw = true; private boolean detenido = true; private int horas = 0; private int minutos = 0; private int segundos = 0; JLabel[] lbl_digitos = null; JLabel etiqueta = null; char[] crono = {0,0,:,0,0,:,0,0}; //Constructor public CronometroThread(){ lbl_digitos = new JLabel [8]; this.setLayout(null); this.setBounds(10, 10, 300, 140); for(int i = 0; i < lbl_digitos.length; i++) { lbl_digitos[i] = new JLabel(); this.add(lbl_digitos[i]); } mostrarInfoCrono(); JButton btn_arrancar_parar = new JButton("Arrancar/Parar"); btn_arrancar_parar.setName("btn_arrancar_parar"); btn_arrancar_parar.addActionListener(this); btn_arrancar_parar.setBounds(20,50,120,20); this.add(btn_arrancar_parar); JButton btn_reiniciar = new JButton("Reiniciar"); btn_reiniciar.setName("btn_reiniciar"); btn_reiniciar.addActionListener(this); btn_reiniciar.setBounds(150,50,110,20); this.add(btn_reiniciar); crono_hilo = new Thread(this); crono_hilo.start(); } bitCoach::Juan Bautista Cascallar Lorenzo
  3. 3. private void mostrarInfoCrono(){ for(int i = 0; i < lbl_digitos.length; i++) { if(crono[i] != :){ lbl_digitos[i].setIcon(new ImageIcon("imagenes/" + crono[i] + ".gif")); lbl_digitos[i].setBounds(70 + (i*13), 10, 13, 23); }else{ lbl_digitos[i].setIcon(new ImageIcon("imagenes/separador.gif")); lbl_digitos[i].setBounds(70 + (i*13), 10, 13, 23); } }}@Overridepublic void run() { // TODO Auto-generated method stub StringBuffer tmp; while(sw == true){ try { if(detenido == false){ mostrarInfoCrono(); Thread.sleep(1000); segundos++; //Calculamos los valores if(segundos == 60){ segundos = 0; minutos++; if(minutos == 60){ minutos = 0; horas++; if(horas == 24){ horas = 0; } } } //Formatear la hora tmp = new StringBuffer(8); if(horas < 10){tmp.append(0);} tmp.append(horas); tmp.append(:); if(minutos < 10){tmp.append(0);} tmp.append(minutos); tmp.append(:); if(segundos < 10){tmp.append(0);} tmp.append(segundos); //System.out.println(tmp.toString()); crono = tmp.toString().toCharArray(); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }} bitCoach::Juan Bautista Cascallar Lorenzo
  4. 4. //--- EVENTOS --- @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Object control = arg0.getSource(); if(control instanceof JButton){ if(((JButton) control).getName().equals("btn_arrancar_parar")){ if(detenido == true){ detenido = false; }else{ detenido = true; } } if(((JButton) control).getName().equals("btn_reiniciar")){ detenido = true; horas = 0; minutos = 0; segundos = 0; for(int i = 0; i < crono.length; i++){ if((i==2) || (i==5)){ crono[i] = :; }else{ crono[i] = 0; } } mostrarInfoCrono(); } } }}TestCronometro.javaimport javax.swing.JFrame;public class TestCronometro { private static CronometroThread cr = null; public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame = new JFrame("Prueba del componente cronómetro"); frame.setLayout(null); frame.addWindowListener(new FrameListener()); frame.setBounds(0,0,300,140); cr = new CronometroThread(); frame.add(cr); frame.setVisible(true); }} bitCoach::Juan Bautista Cascallar Lorenzo

×