Une jlabel timer (que secondes, minutes, heures)

Contenu du snippet

Ce code est tout simplement une JLabel qui détermine le temps écoulé depuis que l'on a validé. En outre, on peut le réinitialiser.

Source / Exemple :


package com.loloof64.commonclasses;

import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JLabel;

/**

  • Une JLabel qui affiche le temps écoulé depuis qu'elle
  • a été validée. Elle est en outre réinitialisable.
  • Elle affiche depuis les heures jusqu'aux secondes.
  • @author laurent BERNABE
*
  • /
public class Temps extends JLabel { /**
  • La variable de serie.
  • /
private static final long serialVersionUID = 3443080658560958094L; /**
  • Le composant servant à mesurer le temps écoulé.
  • /
private Timer timer; /**
  • Le nombre de secondes écoulées.
  • /
private long secondes; /**
  • Indique si le Temps est valide : c'est à dire si le Temps
  • peut être éxécuté.
  • /
private boolean valide; /**
  • Le constructeur par défaut.
*
  • /
public Temps(){ super(""); secondes = 0; valide = false; /* Le coeur de la détermination du temps écoulé */ timer = new Timer(); timer.schedule(new TimerTask(){ public void run() { if (valide) { secondes += 1; setText(timeToText(secondes)); } } },0,1000); /* ******************************************** */ initialiser(); } /**
  • Initialise mais modifier la validation : le texte
  • réaffiche simplement un temps de 0.
*
  • /
public void initialiser(){ this.secondes = 0; this.setText(timeToText(secondes)); } /**
  • Retourne le texte à afficher en fonction du nombre de
  • secondes écoulées. Si on dépasse 23h59mn59s, on revient
  • à un temps de 0h0mn0s.
  • @param secondes - double Le nombre de secondes écoulées.
  • @return String - Le texte à afficher.
  • /
private String timeToText(long secondes){ /* Détermination des 3 composantes int h, mn, s
  • Remarque, on aura toujours les nombres qui tiennent
  • sur deux chiffres, grâce aux modulos*/
long heure, min, sec; sec = secondes % 60; min = (secondes / 60) % 60; heure = (secondes / (60*60)) % 24; /* Détermination des 3 composantes String h, mn, s */ String sHeure, sMin, sSec; sHeure = timeFormat(heure); sMin = timeFormat(min); sSec = timeFormat(sec); /* Retourne la chaîne à afficher */ return sHeure + ":" + sMin + ":" + sSec; } /**
  • @param timeComposant long - Une composante temps : des heures, des
  • minutes ou des secondes.
  • @return String - une chaine qui fait au moins 2 chiffres (Plus
  • si timeComposant dépasse 99, ce qui ne devrait pas être
  • le cas. Mais j'ai préféré ne pas créer d'exception pour ce qui
  • peut être une grossière erreur de programmation de la part
  • d'utilisateurs).
  • /
private String timeFormat(long timeComposant){ if(timeComposant<10) return "0"+new Long(timeComposant).toString(); else{ return new Long(timeComposant).toString(); } } /**
  • Permet d'autoriser le temps à s'écouler ou non.
  • @param valide - boolean, True si l'on veut que le temps
  • s'écoule.
  • /
public void setValide(boolean valide) { this.valide = valide; } }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.