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

Cambiar plataforma JDK en Netbeans

Es recomendable tener actualizado la Maquina Virtual Java de nuestro equipo para poder disfrutar de las mejoras que trae[...]

Crea código HTML5 desde java con j2html

j2html es una biblioteca para java que permite generar código html seguro desde código java utilizando sus propias etiqu[...]

Personalizar JTable: Problema resuelto

En este post se da respuesta a una pregunta realizada por facebook. El problema dice así: Se quiere personalizar un JTab[...]

Conexion Access con PHP

Para poder conectar PHP con una base de datos de microsoft Access debemos seguir los siguientes pasos: 1. Crea una base[...]

Código de Control v7 en JavaScript

En esta oportunidad, se deja a disposición de la comunidad de programadores de Bolivia y también porque no, del que quie[...]

Software Libre: Decompilador Java

El proyecto «Java Decompiler» tiene como objetivo desarrollar herramientas para descompilar y analizar byte code de  jav[...]