• Viernes 8 de Noviembre de 2024, 15:50

Autor Tema:  reloj sencillo en java  (Leído 21041 veces)

daveG

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
reloj sencillo en java
« en: Lunes 17 de Noviembre de 2008, 20:06 »
0
Hola buen dia a todos, de antemano gracias por al ayuda que recibo aqui..

fijense que tengo implementar un cronometro sencillo a mi proyecto. solo que muestre minutos y segundos, se pueda pausar, continuar y detener.
y que al pausar el cronometro sera que se puede desabilitar las teclas derecha, izquierda, arriba, abajo del teclado.   de antemano muchas gracias a todos

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: reloj sencillo en java
« Respuesta #1 en: Lunes 17 de Noviembre de 2008, 20:42 »
0
Ponte lo que tengas hecho por ahora, a ver.

daveG

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: reloj sencillo en java
« Respuesta #2 en: Martes 18 de Noviembre de 2008, 05:16 »
0
Asi es como tengo el cronometro sencillo

public void start()
{
   tiempoInicial = System.currentTimeMillis();
   Thread hilo = new Thread(this);
   hilo.start();
}

public void run()
{
   Calendar tiempo = Calendar.getInstance();
   while (true)
   {
      tiempo.setTimeInMillis(System.currentTimeMillis()- tiempoInicial );
      Etiempo.setText(tiempo.get(Calendar.MINUTE) + ":" + tiempo.get(Calendar.SECOND));
                                //Etiempo es la etiqueta donde se muestra los minutos y segundos
   }

y pues no se como implementar un metodo stop() para que pause el cronometro.
  de antemano gracias...

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: reloj sencillo en java
« Respuesta #3 en: Martes 18 de Noviembre de 2008, 09:36 »
0
hola

usa el metodo thread.sleep(milisegundos), incluso lo puedes poner dentro de una ciclo, y  qeu siga asi hasta que el usuario haga saltar un nuevo evento, entonces de esa forma sale del bucle.

para deshabilitar las teclas (imagino que con ellas controlas algun evento en tu aplicacion) basta con hacer un if dentro dell evento de keyAction, por ejemplo:
if (evt.getKeyCode != codigoDeFlechaIzquierda){
    ...
}

saludos

SFRJ

  • Miembro MUY activo
  • ***
  • Mensajes: 115
    • Ver Perfil
Re: reloj sencillo en java
« Respuesta #4 en: Sábado 31 de Enero de 2009, 13:36 »
0
Veo que el post es ya antiguo, pero bueno es igual hace ya unos meses yo tambien hize un cronometro, mira te mando el codigo aber si te vale.
Lo unico hay que corregir una cosilla para que en los textfield no se permita introducir caracteres que no sean numeros.
Un Saludo.
Código: Text
  1.  
  2.  
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.Event;
  7. import java.awt.BorderLayout;
  8. import javax.swing.SwingConstants;
  9. import javax.swing.SwingUtilities;
  10. import javax.swing.KeyStroke;
  11. import java.awt.Point;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JMenuItem;
  15. import javax.swing.JMenuBar;
  16. import javax.swing.JMenu;
  17. import javax.swing.JFrame;
  18. import javax.swing.JDialog;
  19. import java.awt.GridBagLayout;
  20. import java.awt.Dimension;
  21. import javax.swing.JTextField;
  22. import java.awt.GridBagConstraints;
  23. import java.awt.FlowLayout;
  24. import javax.swing.JButton;
  25. import java.awt.Toolkit;
  26.  
  27.  
  28. import java.awt.Insets;
  29. import java.awt.Color;
  30. import java.awt.Font;
  31.  
  32. public class CountDown {
  33.  
  34.     private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="261,21"
  35.     private JPanel mainPanel = null;
  36.     private JPanel northPanel = null;
  37.     private JPanel centerPanel = null;
  38.     private JLabel hoursLeftLabel = null;
  39.     private JTextField hoursLeftTextField = null;
  40.     private JLabel minutesTimeLabel = null;
  41.     private JTextField minutesLeftTextField = null;
  42.     private JLabel secondsLeftLabel = null;
  43.     private JTextField secondsLeftTextField = null;
  44.     private JPanel southPanel = null;
  45.     private JButton goButton = null;
  46.     private JLabel timeLeftjLabel = null;
  47.     private Counter counter = new Counter();
  48.     /**
  49.      * This method initializes jFrame
  50.      *
  51.      * @return javax.swing.JFrame
  52.      */
  53.     private JFrame getJFrame() {
  54.         if (jFrame == null) {
  55.             jFrame = new JFrame();
  56.             jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  57.             jFrame.setSize(370, 130);
  58.             jFrame.setResizable(false);
  59.             jFrame.setContentPane(getMainPanel());
  60.             jFrame.setTitle("THE FINAL COUNTDOWN by Djordje Popovic");
  61.             jFrame.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/2,Toolkit.getDefaultToolkit().getScreenSize().height/2);
  62.         }
  63.         return jFrame;
  64.     }
  65.  
  66.     /**
  67.      * This method initializes mainPanel    
  68.      *  
  69.      * @return javax.swing.JPanel  
  70.      */
  71.     private JPanel getMainPanel() {
  72.         if (mainPanel == null) {
  73.             mainPanel = new JPanel();
  74.             mainPanel.setLayout(new BorderLayout());
  75.             mainPanel.add(getNorthPanel(), BorderLayout.NORTH);
  76.             mainPanel.add(getCenterPanel(), BorderLayout.CENTER);
  77.             mainPanel.add(getSouthPanel(), BorderLayout.SOUTH);
  78.         }
  79.         return mainPanel;
  80.     }
  81.  
  82.     /**
  83.      * This method initializes northPanel  
  84.      *  
  85.      * @return javax.swing.JPanel  
  86.      */
  87.     private JPanel getNorthPanel() {
  88.         if (northPanel == null) {
  89.             secondsLeftLabel = new JLabel();
  90.             secondsLeftLabel.setText("Seconds:");
  91.             minutesTimeLabel = new JLabel();
  92.             minutesTimeLabel.setText("Minutes: ");
  93.             hoursLeftLabel = new JLabel();
  94.             hoursLeftLabel.setText("Hours:");
  95.             northPanel = new JPanel();
  96.             northPanel.setLayout(new FlowLayout());
  97.             northPanel.add(hoursLeftLabel, null);
  98.             northPanel.add(getHoursLeftTextField(), null);
  99.             northPanel.add(minutesTimeLabel, null);
  100.             northPanel.add(getMinutesLeftTextField(), null);
  101.             northPanel.add(secondsLeftLabel, null);
  102.             northPanel.add(getSecondsLeftTextField(), null);
  103.         }
  104.         return northPanel;
  105.     }
  106.  
  107.     /**
  108.      * This method initializes centerPanel  
  109.      *  
  110.      * @return javax.swing.JPanel  
  111.      */
  112.     private JPanel getCenterPanel() {
  113.         if (centerPanel == null) {
  114.             timeLeftjLabel = new JLabel();
  115.             timeLeftjLabel.setText("TIME LEFT");
  116.             timeLeftjLabel.setForeground(new Color(102, 255, 102));
  117.             timeLeftjLabel.setBackground(Color.black);
  118.             timeLeftjLabel.setFont(new Font("DialogInput", Font.BOLD, 18));
  119.             timeLeftjLabel.setHorizontalAlignment(SwingConstants.CENTER);
  120.             centerPanel = new JPanel();
  121.             centerPanel.setLayout(new BorderLayout());
  122.             centerPanel.setBackground(Color.black);
  123.             centerPanel.add(timeLeftjLabel, BorderLayout.NORTH);
  124.         }
  125.         return centerPanel;
  126.     }
  127.  
  128.     /**
  129.      * This method initializes hoursLeftTextField  
  130.      *  
  131.      * @return javax.swing.JTextField  
  132.      */
  133.     private JTextField getHoursLeftTextField() {
  134.         if (hoursLeftTextField == null) {
  135.             hoursLeftTextField = new JTextField();
  136.             hoursLeftTextField.setPreferredSize(new Dimension(20, 20));
  137.             hoursLeftTextField.setText("0");
  138.         }
  139.         return hoursLeftTextField;
  140.     }
  141.  
  142.     /**
  143.      * This method initializes minutesLeftTextField
  144.      *  
  145.      * @return javax.swing.JTextField  
  146.      */
  147.     private JTextField getMinutesLeftTextField() {
  148.         if (minutesLeftTextField == null) {
  149.             minutesLeftTextField = new JTextField();
  150.             minutesLeftTextField.setPreferredSize(new Dimension(20, 20));
  151.             minutesLeftTextField.setText("0");
  152.         }
  153.         return minutesLeftTextField;
  154.     }
  155.  
  156.     /**
  157.      * This method initializes secondsLeftTextField
  158.      *  
  159.      * @return javax.swing.JTextField  
  160.      */
  161.     private JTextField getSecondsLeftTextField() {
  162.         if (secondsLeftTextField == null) {
  163.             secondsLeftTextField = new JTextField();
  164.             secondsLeftTextField.setPreferredSize(new Dimension(20, 20));
  165.             secondsLeftTextField.setText("0");
  166.         }
  167.         return secondsLeftTextField;
  168.     }
  169.  
  170.     /**
  171.      * This method initializes southPanel  
  172.      *  
  173.      * @return javax.swing.JPanel  
  174.      */
  175.     private JPanel getSouthPanel() {
  176.         if (southPanel == null) {
  177.             southPanel = new JPanel();
  178.             southPanel.setLayout(new FlowLayout());
  179.             southPanel.add(getGoButton(), null);
  180.         }
  181.         return southPanel;
  182.     }
  183.  
  184.     /**
  185.      * This method initializes goButton
  186.      *  
  187.      * @return javax.swing.JButton  
  188.      */
  189.     private JButton getGoButton() {
  190.         if (goButton == null) {
  191.             goButton = new JButton();
  192.             goButton.setText("GO");
  193.             goButton.addActionListener(new java.awt.event.ActionListener() {
  194.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  195.                     counter.setJl(timeLeftjLabel,Integer.parseInt(hoursLeftTextField.getText()),Integer.parseInt(minutesLeftTextField.getText()),Integer.parseInt(secondsLeftTextField.getText()));
  196.                     counter.start();
  197.                     goButton.setVisible(false);
  198.                 }
  199.             });
  200.         }
  201.         return goButton;
  202.     }
  203.  
  204.     /**
  205.      * Launches this application
  206.      */
  207.     public static void main(String[] args) {
  208.         SwingUtilities.invokeLater(new Runnable() {
  209.             public void run() {
  210.                 CountDown application = new CountDown();
  211.                 application.getJFrame().setVisible(true);
  212.             }
  213.         });
  214.     }
  215.  
  216. }
  217. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  218. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  219. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  220. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  221.  
  222. import javax.swing.JLabel;
  223.  
  224.  
  225. public class Counter extends Thread {
  226.    
  227.     private JLabel jl = new JLabel();
  228.     private String theTime;
  229.     private int hours;
  230.     private int minutes;
  231.     private int seconds;    
  232.    
  233.    
  234.     public Counter() {
  235.    
  236.     }
  237.    
  238.     public JLabel getJl() {
  239.         return jl;
  240.     }
  241.    
  242.     public void setJl(JLabel jl, int h, int m, int s) {
  243.         this.jl = jl;
  244.         hours = h;
  245.         minutes = m;
  246.         seconds = s;
  247.     }
  248.    
  249.     public void countBack() {
  250.         try {
  251.         while(seconds >= 0 && minutes >= 0 && hours >= 0) {
  252.             if(seconds > 0){
  253.                 sleep(1000);
  254.                 seconds = seconds -1;
  255.                 jl.setText("" + hours + ":" + minutes + ":" + seconds);
  256.             }
  257.             else {
  258.                 if(minutes > 0){
  259.                    
  260.                     minutes = minutes - 1;
  261.                     seconds = 59;
  262.                     jl.setText("" + hours + ":" + minutes + ":" + seconds);
  263.                 }
  264.                 else{
  265.                     if(hours > 0){
  266.                         hours = hours - 1;
  267.                         minutes = 60;
  268.                         jl.setText("" + hours + ":" + minutes + ":" + seconds);
  269.                     }
  270.                 }
  271.             }
  272.                
  273.         }
  274.         } catch (InterruptedException e) {
  275.             // TODO Auto-generated catch block
  276.             e.printStackTrace();
  277.         }
  278.     }
  279.    
  280.     @Override
  281.     public void run() {
  282.         while(hours >= 0 && minutes >= 0 && seconds >= 0) {
  283.             countBack();
  284.             }
  285.     }
  286. }
  287.  
  288.  
  289.  
  290.