Cronometro.java

Categorías: CategoryJava | CategoryProgramacion

   1 /*
   2  * To change this template, choose Tools | Templates
   3  * and open the template in the editor.
   4  */
   5 package savetheearthsk;
   6 
   7 import java.awt.Color;
   8 import java.awt.Graphics;
   9 import java.io.FileNotFoundException;
  10 import java.io.FileOutputStream;
  11 import java.io.IOException;
  12 import java.io.ObjectOutputStream;
  13 import java.util.Map;
  14 import java.util.logging.Level;
  15 import java.util.logging.Logger;
  16 import javax.swing.JOptionPane;
  17 
  18 /**
  19  *
  20  * @author lina maria bermudez
  21  * @author mario nicolas arcila
  22  */
  23 
  24 
  25 /**
  26  * Esta clase es aquella que nos permite generar la cuenta regresiva
  27  */
  28 public class Cronometro extends ObjetoGrafico implements Runnable {
  29 
  30     Thread cronometro = new Thread();
  31     int tiempo = 60;
  32     private Lienzo lienzo;
  33     private Map<Integer, Puntaje> puntajes;
  34     private Puntaje puntaje;
  35     private Configuraciones configuraciones;
  36 
  37     /**
  38      *
  39      * @param x es la ubicacion en X
  40      * @param y es la posicion en Y
  41      * @param ancho es el ancho de la calavera
  42      * @param alto es el alto de la calavera
  43      * @param lienzo es una clase en la cual se muestra cada una de las clases graficas
  44 
  45      * @param escuchaVentana Se agrega esta clase a los parametros para poder salvar los puntajes al finalizar la cuenta regresiva
  46      * @param puntajes Esta clase contiene el mapa de los puntajes
  47      * @param puntaje Contiene el puntaje actual
  48      * @param configuraciones Recibe las configuraciones configuradas
  49      */
  50     public Cronometro(int x, int y, int ancho, int alto, Lienzo lienzo, EscuchaVentana escuchaVentana, Map<Integer, Puntaje> puntajes, Puntaje puntaje, Configuraciones configuraciones) {
  51         super(x, y, ancho, alto);
  52         this.lienzo = lienzo;
  53         this.puntajes = puntajes;
  54         this.puntaje = puntaje;
  55         this.configuraciones = configuraciones;
  56     }
  57 
  58     /**
  59      *
  60      * @param g  es la clase base para todo contexto grafico
  61      */
  62 
  63     @Override
  64     public void paint(Graphics g) {
  65         g.drawString(" " + tiempo, x, y);
  66 
  67     }
  68     /**
  69      * Este metodo contiene el como actuara el hilo de el tiempo
  70      */
  71 
  72     public synchronized void run() {
  73         //Configuraciones configuraciones = new Configuraciones();
  74 
  75         if (configuraciones.cronometro == 0) {
  76             for (tiempo = 100; tiempo > 0; tiempo--) {
  77 
  78                 try {
  79                     Thread.sleep(250);
  80                     lienzo.repaint();
  81 
  82                 } catch (InterruptedException ex) {
  83                     Logger.getLogger(Cronometro.class.getName()).log(Level.SEVERE, null, ex);
  84                 }
  85 
  86 
  87             }
  88         } else {
  89             for (tiempo = configuraciones.cronometro; tiempo > 0; tiempo--) {
  90 
  91                 try {
  92                     Thread.sleep(250);
  93                     lienzo.repaint();
  94 
  95                 } catch (InterruptedException ex) {
  96                     Logger.getLogger(Cronometro.class.getName()).log(Level.SEVERE, null, ex);
  97                 }
  98 
  99             }
 100         }
 101         // }
 102 
 103 
 104 
 105         JOptionPane.showMessageDialog(null, "Tiempo terminado Su puntaje sera salvado gracias por jugar");
 106         System.out.println("Puntajes\n");
 107 
 108         System.err.println("getSet  = " + puntajes.keySet());
 109 
 110         System.out.println("Puntajes");
 111         for (Puntaje p : puntajes.values()) {
 112             System.out.println(p);
 113         }
 114 
 115         // frame.add(new Label());
 116 
 117         //System.out.println(p);
 118         puntajes.put(puntaje.getCantidad(), puntaje);
 119         puntajes.keySet();
 120 
 121 
 122         try {
 123             ObjectOutputStream archivo = new ObjectOutputStream(new FileOutputStream("juego.dat"));
 124             archivo.writeObject(puntajes);
 125             archivo.close();
 126         } catch (FileNotFoundException e) {
 127             System.err.println("no existe el archivo");
 128             Logger.getLogger(EscuchaVentana.class.getName()).log(Level.SEVERE, null, e);
 129         } catch (IOException ex) {
 130             Logger.getLogger(EscuchaVentana.class.getName()).log(Level.SEVERE, null, ex);
 131         }
 132 
 133 
 134         System.exit(0);
 135 
 136 
 137 
 138     }
 139 }
 140 
 141 

Java/Programas/SaveTheEarth/Cronometro.java (last edited 2010-10-28 11:22:25 by Nicolas Arcila)