Aide pour le passage des secondes aux minutes pour un compte à rebours

max59310 Messages postés 2 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 29 mars 2010 - 29 mars 2010 à 21:14
max59310 Messages postés 2 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 29 mars 2010 - 29 mars 2010 à 21:15
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'avoir qu'en secondes. Quelqu'un pourrait me dire quels changements je dois apporter à ma classe afin d'obtenir ce que je veux?
Merci

1 réponse

max59310 Messages postés 2 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 29 mars 2010
29 mars 2010 à 21:15
Voici le code :
package eltelecobal;

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;


public class GestionTemps extends JPanel{

// timer servant à décrémenter le chrono
private Timer timer;
private Color c = Color.GREEN;
private int tpsini;
private int tpsrestant;
// f : Font appliqué au texte */
private static Font f = new Font("Book Antiqua", Font.BOLD, 25);

// Méthode du compte à rebours avec N, le nombres de secondes initiales
public GestionTemps(int N) {
timer = createTimer();
timer.start();
setOpaque(false);
setPreferredSize(new Dimension(72,72));
this.setTpsRestant(N);
this.setTpsini(N);
}

//méthode permettant de démarrer le chronomètre
public void start(){
timer.start();
}

//méthode permettant d'arreter le chronomètre
public void stop(){
timer.stop();
}

//méthode permettant de créer le timer
private Timer createTimer(){
ActionListener action = new ActionListener(){
public void actionPerformed (ActionEvent event){
if(tpsrestant>9){
tpsrestant--;
repaint();
}
else{
timer.stop();
}
}
};

return new Timer (1000, action);
}

/** Méthode permettant de dessiner le chronomètre sous forme d'un cercle
* param eg : element graphique
* param xcent : abscisse du cercle
* param ycent : ordonnée du cercle
* param r : rayon du cercle
*/
public void drawCircle(Graphics eg, int xcent, int ycent, int r){
eg.setColor(Color.BLUE);
eg.fillOval(xcent - r, ycent - r, 2*r, 2*r);
eg.setColor(c);
eg.fillArc(xcent - r, ycent - r, 2*r, 2*r, 90, -(360-tpsrestant*360/tpsini));
eg.setColor(Color.black);
eg.setFont(f);
if(tpsrestant > 0){
eg.drawString("" + this.tpsrestant, 24, 42);
}
else {
eg.drawString("temps écoulé", 24 , 42);
}
}

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

public Timer getTimer(){
return this.timer;
}

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

public int getTpsRestant() {
return tpsrestant;
}

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

public int getTpsini() {
return tpsini;
}

public void setTpsini(int temps) {
this.tpsini = temps;
}

public static void main(String[] args){
JFrame f = new JFrame("Test du compte à rebours");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new GestionTemps(600));
f.pack();
f.setVisible(true);
}
}
0
Rejoignez-nous