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

Hola Mundo con Slim Framework

Slim es un micro framework para PHP que nos ayuda a escribir rápidamente aplicaciones Web y APIs sencillas pero poderosa[...]

MAUS :- Simulador y Editor de exámenes para dispositivos móviles

MAUS es una aplicación para dispositivos móviles con el Sistema Operativo Android que te permite realizar exámenes desde[...]

Construye tu aplicación de mensajeria

En este post crearemos una aplicación sencilla para mandar mensajes de texto desde android. Necesitamos IDE: Eclipse + S[...]

Matriz de Adyacencia: Representación de grafos en Java

En este post conoceremos una forma de representar grafos mediante una Matriz de Adyacencia y un ejemplo básico de este e[...]

Obtener Metadatos de una base de datos con java

La clase de java DatabaseMetaData nos permite obtener información exhaustiva sobre una base de datos, para ser más exact[...]

Encriptación por el método bífido

El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o más letras o símbolos,[...]