Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Ejercicios / Java / Contar segundos (Problema Resuelto)

Contar segundos (Problema Resuelto)

Por jc mouse miércoles, junio 20, 2012

El problema dice asi:

Se desea contar los segundos que se presiona un JButton en un formulario.

Solución:

Para resolver este problema, se debe conocer los eventos del JButton, para este problema, solo necesitamos conocer dos de ellos:

MousePressed: Ocurre cuando se presiona con el botón del ratón  dentro el JButton, termina una vez que se levanta.

MouseReleased: Se ejecuta una vez que se levanta completamente el dedito 🙂 del boton del ratón.

Para implementar un contador se utiliza un Timer y un TimerTask el cual ira incrementando una variable cada 1000 milisegundos ( osea cada segundo ), este Timer, se implementa en una clase llamada Tiempo.java.

import java.util.Timer;
import java.util.TimerTask;
/**
 * @web https://www.jc-mouse.net
 * @author Mouse
 */
public class Tiempo  {

    private Timer timer = new Timer(); 
    private int segundos=0;

    //Clase interna que funciona como contador
    class Contador extends TimerTask {
        public void run() {
            segundos++;
     System.out.println("segundo: " + segundos);
        }
    }
    //Crea un timer, inicia segundos a 0 y comienza a contar
    public void Contar()
    {
        this.segundos=0;
        timer = new Timer();
        timer.schedule(new Contador(), 0, 1000);
    }
    //Detiene el contador
    public void Detener() {
        timer.cancel();
    }
    //Metodo que retorna los segundos transcurridos
    public int getSegundos()
    {
        return this.segundos;
    }
}

Nuestra interfaz de prueba es un JFrame que solamente consta de un JButton

Implementando esta clase en nuestra interfaz de prueba en los eventos respectivos del JButton

Tiempo tiempo = new Tiempo();

private void jButton1MousePressed(java.awt.event.MouseEvent evt) {                                      
    if(evt.getButton()==1)
         tiempo.Contar();
}                                     

private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
     tiempo.Detener();
     javax.swing.JOptionPane.showMessageDialog(this,"Se presiono el boton por " +  tiempo.getSegundos() + " Segundos" );
}

Resultado

presioname

 Descargar ejemplo

Tags

Artículos similares

Crea un reproductor de video con VLCJ y Java

VLC Media Player es un reproductor multimedia de código abierto muy popular desarrollado por el proyecto VideoLAN. VLCJ[...]

UML Java: easyUML plugins para Netbeans

easyUML es una herramienta para crear diagramas UML para NetBeans de forma visual. Adecuado para el aprendizaje de este[...]

Pon a prueba tus conocimientos sobre comandos Linux

Como dice un viejo dicho, «La practica hace al maestro» y en el mundo de la programación no es diferente, por eso siempr[...]

Gráficos de tortas en iReport

Los gráficos de torta, también llamados gráficos de 360 grados o circulares, son gráficos estadísticos que se utilizan p[...]

Crea tu propia plantilla de proyectos

En un post anterior [Crear plantillas personalizadas para Netbeans] vimos una forma sencilla que tiene Netbeans para fac[...]

Conexion Visual Basic a Firebird

En este tutorial nos conectaremos a una base de datos de Firebird utilizando el lenguaje de Visual Basic, el proyecto se[...]