Aide pour le passage des secondes aux minutes pour un compte à rebours
max59310
Messages postés2Date d'inscriptiondimanche 28 mars 2010StatutMembreDernière intervention29 mars 2010
-
29 mars 2010 à 21:14
max59310
Messages postés2Date d'inscriptiondimanche 28 mars 2010StatutMembreDernière intervention29 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
// 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);
}
}