begin process at 2012 02 15 16:00:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > COMPTE À REBOURS

COMPTE À REBOURS


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Classé sous :compte, chronometre, timer, paintComponent, rebours Niveau :Débutant Date de création :11/02/2010 Vu :5 226

Auteur : Julien39

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Compte à rebours circulaire. Il a été créé en surchargeant la méthode paintComponent du JPanel.

Plusieurs modifications sont possibles : passage de compte à rebours à chronomètre, ajout d'un GradientPaint sur le cercle d'avancement...

Source

  • package util;
  • import java.awt.Color;
  • import java.awt.Dimension;
  • import java.awt.Font;
  • import java.awt.Graphics;
  • import java.awt.event.ActionEvent;
  • import java.awt.event.ActionListener;
  • import javax.swing.JFrame;
  • import javax.swing.JPanel;
  • import javax.swing.Timer;
  • /**
  • *
  • * @classe Chronometre
  • *
  • * @extends JPanel
  • *
  • * @description Classe qui définit un chronometre
  • *
  • */
  • public class Chrono extends JPanel{
  • /** serialVersionUID : numero de serie */
  • private static final long serialVersionUID = 1L;
  • /** f : Font appliqué au texte */
  • private static Font f = new Font("Book Antiqua", Font.BOLD, 25);
  • /** timer : timer servant à décrémenter le chronometre */
  • private Timer timer;
  • /** couleur : couleur de fond du chronometre */
  • private Color couleur=Color.orange;
  • /** tempsRestant : temps restant */
  • private int tempsRestant;
  • /** temps : temps initial */
  • private int temps;
  • /**
  • * Construction du chronometre
  • * @param N : le nombre de secondes initial
  • */
  • public Chrono(int N){
  • timer = createTimer ();
  • timer.start();
  • setOpaque(false);
  • setPreferredSize(new Dimension(72, 72));
  • this.setTempsRestant(N);
  • this.setTemps(N);
  • }
  • public Chrono(int N, Color couleur){
  • this.couleur=couleur;
  • timer = createTimer ();
  • timer.start();
  • setOpaque(false);
  • setPreferredSize(new Dimension(72, 72));
  • this.setTempsRestant(N);
  • this.setTemps(N);
  • }
  • /**
  • * Permet de démarrer le chronometre
  • */
  • public void start(){
  • timer.start ();
  • }
  • /**
  • * Permet d'arreter le chronometre
  • */
  • public void stop(){
  • timer.stop ();
  • }
  • /**
  • * Methode qui crée un Timer
  • * @return le timer
  • */
  • private Timer createTimer (){
  • ActionListener action = new ActionListener (){
  • public void actionPerformed (ActionEvent event){
  • if(tempsRestant>0){
  • tempsRestant--;
  • repaint();
  • }
  • else{
  • timer.stop();
  • }
  • }
  • };
  • return new Timer (1000, action);
  • }
  • /**
  • * Redéfinition de la méthode paintCompnent
  • */
  • public void paintComponent(Graphics g) {
  • this.drawCircle(g, 35, 35, 30);
  • }
  • /**
  • * Fonction qui permet de dessiner le chronometre
  • * @param cg : element graphique
  • * @param xCenter : abscice du centre du cercle
  • * @param yCenter : ordonnee du centre du cercle
  • * @param r : rayon du cercle
  • */
  • public void drawCircle(Graphics cg, int xCenter, int yCenter, int r) {
  • cg.setColor(Color.white);
  • cg.fillOval(xCenter-r, yCenter-r, 2*r, 2*r);
  • cg.setColor(couleur);
  • cg.fillArc(xCenter-r, yCenter-r, 2*r, 2*r, 90, -(360-tempsRestant*360/temps));
  • cg.setColor(Color.black);
  • cg.setFont(f);
  • if(tempsRestant>9){
  • cg.drawString(""+this.tempsRestant, 24, 42);
  • }
  • else{
  • cg.drawString("0"+this.tempsRestant, 24, 42);
  • }
  • }
  • public Timer getTimer() {
  • return timer;
  • }
  • public void setTimer(Timer timer) {
  • this.timer = timer;
  • }
  • public int getTempsRestant() {
  • return tempsRestant;
  • }
  • public void setTempsRestant(int tempsRestant) {
  • this.tempsRestant = tempsRestant;
  • }
  • public int getTemps() {
  • return temps;
  • }
  • public void setTemps(int temps) {
  • this.temps = temps;
  • }
  • public static void main(String[] args){
  • JFrame f = new JFrame("Test du compte à rebours");
  • f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • f.add(new Chrono(60));
  • f.pack();
  • f.setVisible(true);
  • }
  • }
package util;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

/**
 * 
 * @classe Chronometre
 * 
 * @extends JPanel
 * 
 * @description Classe qui définit un chronometre
 *
 */

public class Chrono extends JPanel{
	
	/** serialVersionUID : numero de serie */
	private static final long serialVersionUID = 1L;
	/** f : Font appliqué au texte */
	private static Font f = new Font("Book Antiqua", Font.BOLD, 25);
	/** timer : timer servant à décrémenter le chronometre */
	private Timer timer;
	/** couleur : couleur de fond du chronometre */
	private Color couleur=Color.orange;
	/** tempsRestant : temps restant */
	private int tempsRestant;
	/** temps : temps initial */
	private int temps;


	/**
	 * Construction du chronometre
	 * @param N : le nombre de secondes initial
	 */
	public Chrono(int N){
		timer = createTimer ();
		timer.start();
		setOpaque(false);
		setPreferredSize(new Dimension(72, 72));
		this.setTempsRestant(N);
		this.setTemps(N);
	}

	public Chrono(int N, Color couleur){
		this.couleur=couleur;
		timer = createTimer ();
		timer.start();
		setOpaque(false);
		setPreferredSize(new Dimension(72, 72));
		this.setTempsRestant(N);
		this.setTemps(N);
	}


	/**
	 * Permet de démarrer le chronometre
	 */
	public void start(){
		timer.start ();
	}

	/**
	 * Permet d'arreter le chronometre
	 */
	public void stop(){
		timer.stop ();
	}

	/**
	 * Methode qui crée un Timer
	 * @return le timer
	 */
	private Timer createTimer (){

		ActionListener action = new ActionListener (){

			public void actionPerformed (ActionEvent event){
				if(tempsRestant>0){
					tempsRestant--;
					repaint();
				}
				else{
					timer.stop();
				}
			}
		};
		return new Timer (1000, action);
	}

	/**
	 * Redéfinition de la méthode paintCompnent
	 */
	public void paintComponent(Graphics g) {
		this.drawCircle(g, 35, 35, 30); 
	}

	/**
	 * Fonction qui permet de dessiner le chronometre
	 * @param cg : element graphique
	 * @param xCenter : abscice du centre du cercle
	 * @param yCenter : ordonnee du centre du cercle
	 * @param r : rayon du cercle
	 */
	public void drawCircle(Graphics cg, int xCenter, int yCenter, int r) {
		cg.setColor(Color.white);
		cg.fillOval(xCenter-r, yCenter-r, 2*r, 2*r);
		cg.setColor(couleur);
		cg.fillArc(xCenter-r, yCenter-r, 2*r, 2*r, 90, -(360-tempsRestant*360/temps));
		cg.setColor(Color.black);
		cg.setFont(f);
		if(tempsRestant>9){
			cg.drawString(""+this.tempsRestant, 24, 42);
		}
		else{
			cg.drawString("0"+this.tempsRestant, 24, 42);
		}
	}

	public Timer getTimer() {
		return timer;
	}

	public void setTimer(Timer timer) {
		this.timer = timer;
	}

	public int getTempsRestant() {
		return tempsRestant;
	}

	public void setTempsRestant(int tempsRestant) {
		this.tempsRestant = tempsRestant;
	}

	public int getTemps() {
		return temps;
	}

	public void setTemps(int temps) {
		this.temps = temps;
	}
	
	public static void main(String[] args){
		JFrame f = new JFrame("Test du compte à rebours");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(new Chrono(60));
		f.pack();
		f.setVisible(true);
		
	}

}



 Sources du même auteur

Source avec Zip Source avec une capture FILTRE SUR LES COLONNES D'UNE JTABLE
Source avec Zip Source avec une capture REPRÉSENTATION GRAPHIQUE DE FONCTIONS ET OBJETS GÉOMÉTRIQUES
Source avec Zip Source avec une capture MENU CIRCULAIRE EN SWING
Source avec Zip Source avec une capture INVITE DE COMMANDES DOS
Source avec Zip DÉCOMPILER UN .CLASS JAVA AVEC JAD

 Sources de la même categorie

Source avec Zip Source avec une capture FILTRE SUR LES COLONNES D'UNE JTABLE par Julien39
Source avec Zip Source avec une capture MENU CIRCULAIRE EN SWING par Julien39
Source avec Zip Source avec une capture BANNIÈRE EN SWING : TEXTE DÉFILANT SUR UN JLABEL par Julien39
Source avec Zip Source avec une capture INDICATEUR D'ACTIVITÉ ANIMÉ par Julien39
Source avec Zip Source avec une capture JGRAPH : COMPOSANTS SWING CUSTOMISÉS par Julien39

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LE COMPTE EST BON par jojolemariole
Source avec Zip Source avec une capture LETMESEE : CAPTURE D'ÉCRAN À INTERVALLE RÉGULIER : UTILISATI... par pyo656
Source avec Zip Source avec une capture TIMER POUR STOPPER UN PROGRAMME .EXE par sarathai
Source avec Zip CHRONOMETRE par didoux95
APPLET DÉCOMPTE DU TEMPS par Gaelle

Commentaires et avis

Commentaire de aimenxy le 23/08/2010 13:58:40

comment l'integrer dans une page jsp????????????

Commentaire de Julien39 le 04/05/2011 14:23:08 administrateur CS

On ne peut pas l'intégrer dans une page jsp, c'est un composant Swing.

Désolé

Commentaire de tlapeg07 le 29/06/2011 11:30:07 7/10

Merci beaucoup, super facile à utiliser, j'ai gagné pas mal de temps. Juste une petite remarque, la méthode reset pourrait être utile dans pas mal de cas.

Commentaire de Julien39 le 29/06/2011 13:08:36 administrateur CS

Merci pour ta remarque, je m'en souviendrai si je fais une mise à jour.

Si tu l'as faite, tu peux la mettre en commentaire ici au cas ou d'autres personnes en auraient besoin ?

Commentaire de tlapeg07 le 29/06/2011 14:18:59

Merci beaucoup, super facile à utiliser, j'ai gagné pas mal de temps. Juste une petite remarque, la méthode reset pourrait être utile dans pas mal de cas.

Commentaire de tlapeg07 le 29/06/2011 14:22:35

Je sais pas comment je me suis débrouillé mais impossible de poster un nouveau commentaire sans reposter l'ancien...?

Bref tout ca pour dire, que selon moi il suffit de remettre le temps restant au temps donné au début, et de relancer le timer. En gros j'ai fait :

/**
* remet le chronomètre à 0
*/
public void reset() {
this.tempsRestant = temps;
timer.start ();
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Compte à rebours puis remise a zéro [ par arno83 ] Bonjour, Dans le cadre d'un projet je dois réaliser une petite application d'enchère multi-threadé. On doit implémenter une fo créer un compte à rebours à l'heure du serveur [ par ajor ] Bonjour à tous,J'aimerais pour mon site, créer un compte à rebours qui fonctionne à l'heure du serveur, afin que tous les client aient exactement le m Aide pour le passage des secondes aux minutes pour un compte à rebours [ par max59310 ] J'ai besoin d'aide afin de modifier le code ci-dessous pour avoir l'affichage de mon compte à rebours en minutes et en secondes plutôt que de ne l'avo Script pour compte a rebour calé sur l'heure serveur [ par cubitus79 ] Bonjour, Je cherche un script qui pourrai faire la différence entre l'heure client et l'heure serveur. Je développe en ce moment un site web où j'ai un genre de compte a rebours!!!! [ par gaga38 ] Salut à tous, voila j ai une petite question pour vous, je dois creer des interfaces java grace a la classe  java.awt.Ma premiere inter qu'est que "Graphics" ? [ par alonsyl ] bonjour,j'ai trouve ce code dans une source (qui m'interesse bcp) de ce site. tous cela me semble limpide sauf que ne sais pas ce que sont les objets Au secours!! keyListenner [ par didi97122 ] Bonjour, j'ai un petit problème en java depuis 2 jours, je dois faire un jeu dans lequel je dois faire bouger des balles grâce aux touches v Swing + JScrollPane = .... [ par platon179 ] Bonjour a tous :)Je bloque sur un problème probablement stupide concernant les JScrollPane....J'ai une classe JListsDisplay qui étend JPanel Applet et chargement Image [ par MPokora ] Bonjour à tous,Je suis actuellement en train de coder un (une ?) applet  avec une phase de chargement d'image. Mais il se trouve que je vien chronometre dans un jeu chiffres et des lettres [ par yrifka ] salut je suis entrain de programmer une interface graphique du jeux des chiffres et des lettres(en java, bibliothèque swing)et je veux inclure un chro


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,238 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales