Package tablero

Source Code of tablero.Tablero

package tablero;




import java.awt.Color;
import tablero.CasillaTablero.ColorLinea;
import tablero.CasillaTablero.TipoLinea;
import tablero.PuntoTablero.TipoPunto;


/**
* Clase que implementa el tablero donde mostraremos las iteraciones de los algortimos
* @author Agust�n Medina Varo
* @version 0.1
*
*/


public class Tablero extends javax.swing.JPanel {
    
 
 
  private static final long serialVersionUID = 1L;
 
  //Controla si las casillas tienen implementado el listener de rat�n 
    private boolean tipoTablero;
    //Array bidimensional con las casillas del tablero
    private CasillaTablero [][] casillas ;
    //Array bidimensional con los puntos del tablero
    private PuntoTablero [][] puntos ;
    //Cadenas horizontal y vertical mostradas en la primera fila y columna del tablero
    private String cadenaHorizontal,cadenaVertical;
    //Tama�o de un casilla del tablero
    private int tamannoActual;
    //Longitud de las cadenas cadenaHorizontal y cadenaVetical
    private int longCadenaHorizontal,longCadenaVertical;
   
  
   
  
    /**********************************
     *   GET's y SET's de las variables
    ***********************************/
   
    public int getTamanhoCasilla(){
      return this.tamannoActual;
    }
   
    public int getLongitudCadenaHorizontal(){
      return this.longCadenaHorizontal;
    }
   
    public int getLongitudCadenaVertical(){
      return this.longCadenaVertical;
    }
   
    public boolean getTipoTablero(){
        return this.tipoTablero;
    }
  
    public String getCadenaHorizontal(){
      return this.cadenaHorizontal;
    }
   
    public String getCadenaVertical(){
      return this.cadenaVertical;
    }
   
   
    /**
     * Constructor del tablero
     * @param cadenaHorizontal Cadena que se mostrar� en la parte superior del tablero
     * @param cadenaVertical Cadena que se mostrar� en la parte izquierda del tablero
     * @param tipo Activa si queremos que las casillas tengan un listener de rat�n
     */
   
    public Tablero(String cadenaHorizontal,String cadenaVertical,int tamannoTablero,  boolean tipo) {
     
     
      this.cadenaHorizontal=cadenaHorizontal;
     
      this.cadenaVertical=cadenaVertical;
     
      this.longCadenaHorizontal=cadenaHorizontal.length();
     
      this.longCadenaVertical=cadenaVertical.length();
     
      this.tipoTablero=tipo;
     
      this.tamannoActual=tamannoTablero;
      //Sumamos 2 a las filas por la columna cabecera y por la �ltima fila de casillas
      //de las cuales usaremos solo la conexi�n con su casilla derecha
      int filas=this.cadenaVertical.length()+2;
      //Sumamos 2 a las columnas por la columna izquierda con la palabra y por la �ltima columna de casillas
      //de las cuales usaremos solo la conexi�n con su casilla inferior
      int columnas=this.cadenaHorizontal.length()+2;
       
      initComponents(filas, columnas);
       
     
       
      //setLayout(new java.awt.GridLayout(filas, columnas));
       
     
      
        casillas = new CasillaTablero[filas][columnas];
        puntos=new PuntoTablero[filas][columnas];
       
        //A�adimos todos los puntos primero para que no los pisen las casillas
        for (int i = 0; i < filas; i++){
            for (int j = 0; j < columnas; j++){
               puntos[i][j]=new PuntoTablero(this.tamannoActual,i,j,this.tamannoActual,TipoPunto.INVISIBLE,this.tipoTablero);
                
              this.add(puntos[i][j]);
            }
        } 
        //A�adimos todas las casillas
        for (int i = 0; i < filas; i++){
            for (int j = 0; j < columnas; j++){
             
              if(i==0 || j==0){
               
                if(i==0 && j!=0 && j<(columnas-1)){
                 
                  casillas[i][j] = new CasillaExterna(this.cadenaHorizontal.substring(j-1, j),this.tamannoActual,i,j,this.tipoTablero);
                }
                else if(j==0 && i!=0 && i<(filas-1)) {
                  casillas[i][j] = new CasillaExterna(this.cadenaVertical.substring(i-1, i),this.tamannoActual,i,j,this.tipoTablero);
                }
                else{
                  casillas[i][j] = new CasillaExterna("",this.tamannoActual,i,j,this.tipoTablero);
                }
               
              }
              else
                casillas[i][j] = new CasillaInterna(this.tamannoActual,i,j,this.tipoTablero);
             
             
                //Posicionamos cada casilla en su sitio dentro del tablero
               // casillas[i][j].setBounds(columna_actual, fila_actual, 34, 34);
                this.casillas[i][j].cambiarTamanno( this.tamannoActual);
              
              
                this.add(casillas[i][j]);
               
               
            }
        }
       
       
       
    }
   
   
    /**
     * Redimensiona el tablero actual
     * @param tamanno Tama�o de cada una de las celdas del tablero
     */
    public void cambiarTamanno(int tamanno){
     
     
      if(tamanno!=this.tamannoActual){
       
            
        int filas=this.cadenaVertical.length()+2;
       
        int columnas=this.cadenaHorizontal.length()+2;
         
        this.tamannoActual=tamanno;
       
        initComponents(filas, columnas);
         
       
         
        for (int i = 0; i < filas; i++){
              for (int j = 0; j < columnas; j++){
                               
                
                  //Posicionamos cada casilla en su sitio dentro del tablero
                 // this.casillas[i][j].setBounds(columna_actual, fila_actual, tamanno-1, tamanno-1);
                this.puntos[i][j].cambiarTamanno(tamanno);
                  this.casillas[i][j].cambiarTamanno( tamanno);
                
                
              }
          }
         
         
         
         this.repaint();
      }
    }
   
   
  
   
    /**
     * Inicializa el tablero, definiendo los colores de fondo, creando bordes,...
     * @param filas N�mero de filas del tablero
     * @param columnas N�mero de columnas del tablero
     */
   
    private void initComponents(int filas,int columnas) {
      this.setLayout(null);
      this.setBackground(Color.GRAY);
      this.setBorder(javax.swing.BorderFactory.createLineBorder(Color.BLACK));
      this.setPreferredSize(new java.awt.Dimension(this.tamannoActual*columnas+1, this.tamannoActual*filas+1));
       
        javax.swing.GroupLayout tableroLayout = new javax.swing.GroupLayout(this);
        this.setLayout(tableroLayout);
        tableroLayout.setHorizontalGroup(
            tableroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 349, Short.MAX_VALUE)
        );
        tableroLayout.setVerticalGroup(
            tableroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 349, Short.MAX_VALUE)
        );
       
       
   
   
   
    /**
     * Limpia el tablero dejando todas las casillas vacias
     */
  
    public void limpiarTablero(){

        
      int filas=this.cadenaVertical.length()+2;
     
      int columnas=cadenaHorizontal.length()+2;
       
     
     
      initComponents(filas, columnas);
       
     
       
      for (int i = 0; i < filas; i++){
            for (int j = 0; j < columnas; j++){
                             
              
                //Posicionamos cada casilla en su sitio dentro del tablero
               // this.casillas[i][j].setBounds(columna_actual, fila_actual, tamanno-1, tamanno-1);
              //  this.casillas[i][j].setEstado(EstadoCasilla.VACIA);
             
                  this.casillas[i][j].limpiarCasilla();
                  this.casillas[i][j].cambiarTamanno(this.tamannoActual);
                  this.puntos[i][j].limpiarPunto();
                  this.puntos[i][j].cambiarTamanno(this.tamannoActual);
                
             
            }
        }
       
       
       
        this.repaint();
     
     
    }
   
   
  
   
   
   
   
    public void pintarLinea(int xOrigen, int yOrigen, int xDestino,int yDestino, TipoLinea tipo,ColorLinea color){
     
        TipoPunto tipoPunto=TipoPunto.CERRADO;
        if(tipo==TipoLinea.INVISIBLE){
          tipoPunto=TipoPunto.INVISIBLE;
        }
        else{
          if(color==ColorLinea.ABIERTO){
            tipoPunto=TipoPunto.ABIERTO;
          }
          else if(color==ColorLinea.ACTUAL){
            tipoPunto=TipoPunto.ACTUAL;
          }
          else if(color==ColorLinea.CERRADO){
            tipoPunto=TipoPunto.CERRADO;
          }
          else if(color==ColorLinea.SOLUCION){
            tipoPunto=TipoPunto.SOLUCION;
          }
        }
       
      //  this.puntos[xOrigen][yOrigen].pintarPunto(tipoPunto,puntos[xOrigen][yOrigen].getGraphics());
       
        this.casillas[xOrigen][yOrigen].pintarLinea(xDestino,yDestino,tipo,color,this.casillas[xOrigen][yOrigen].getGraphics());
       
        this.puntos[xDestino][yDestino].pintarPunto(tipoPunto,puntos[xOrigen][yOrigen].getGraphics());
     
    }
   
    public void nuevoAlgoritmoEnTabla(){
     
    }

  
    public void pintarPunto(int x,int y,TipoPunto tipo){
      //if(x!=0 && y!=0){
        this.puntos[x][y].pintarPunto(tipo, this.puntos[x][y].getGraphics());
    //  }
    }
}
TOP

Related Classes of tablero.Tablero

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.