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
La Universidad Leland Stanford Junior, conocida mundialmente como la Universidad Stanford, es una universidad privada es[...]
En este post vemos un ejemplo de como convertir un archivo de imagen en una cadena de texto codificado en Base64 aprovec[...]
Antes de programar un videojuego, es necesario saber: Cómo representar figuras en la pantalla Cómo se manejan las coorde[...]
Si te gusta realizar tus propios memes o foto montajes pero tienes poca o nula experiencia en editores gráficos como Pho[...]
Si necesitamos mostrar gráficos estadísticos en nuestras aplicaciones android, contamos con muchas librerías disponibles[...]
Un Action Provider es un elemento que habita en la Action Bar para incrementar la accesibilidad de nuestras aplicaciones[...]