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

Decompilar archivos APK

Las aplicaciones para celulares inteligentes con sistema operativo Android, se distribuyen en archivos *.APK, si como pr[...]

Subir imagen a un servidor web con REST/JSON

En este tutorial crearemos una sencilla aplicación para android que nos permitirá subir una imagen a un servidor web. La[...]

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[...]

Tres cursos de programación de la Universidad de Stanford

La Universidad Leland Stanford Junior, conocida mundialmente como la Universidad Stanford, es una universidad privada es[...]

El indice TIOBE

El índice TIOBE (TIOBE, The Importance of Being Earnest – «La importancia de ser honesto» – referencia a la[...]

Blog MVC – El theme y primer controlador [p3]

Tercera parte del tutorial [Crea tu blog con el patrón MVC y php] En este post trabajaremos en el Theme del blog, agrega[...]