PintaLlop - Programa de dibujo

Llop Site Home > JAVA > PintaLlop > Herramientas de dibujo

Herramientas de dibujo:

Clase ColeccionHerramientas

package pintallop;

import javax.swing.*;

/** Título: PintaLlop
    Descripción: Prácticas capítulo 11, ejercicio 3
    Copyright: Copyright (c) 2005
    Empresa: Casa_Llop
    @author Albert_Lobo
    @version 1.0 */

/** Clase que agrupa las herramientas disponibles para pintar. */
public class ColeccionHerramientas
{
  /** Constante que contiene el total de herramientas diferentes. */
  public final static byte TOTAL_HERRAMIENTAS = 6;

  /** Constante que representa la herramienta de lápiz. */
  public final static byte LAPIZ = 0;
  /** Constante que representa la herramienta de línea. */
  public final static byte LINEA = 1;
  /** Constante que representa la herramienta de rectángulo. */
  public final static byte RECTANGULO = 2;
  /** Constante que representa la herramienta de óvalo. */
  public final static byte OVALO = 3;
  /** Constante que representa la herramienta de texto. */
  public final static byte TEXTO = 4;
  /** Constante que representa la herramienta de goma. */
  public final static byte GOMA = 5;

  // Variable que representa la herramienta en uso.
  private byte herramientaEnUso;

  // Array para las herramientas.
  private Herramienta herramienta [];

  /** Constructor. Inicializa las herramientas, y pone el lápiz como la que está en uso. */
  public ColeccionHerramientas ()
  {
    herramienta = new Herramienta [TOTAL_HERRAMIENTAS];
    for (byte i = 0; i < TOTAL_HERRAMIENTAS; i++)
      herramienta [i] = new Herramienta (i);
    herramientaEnUso = 0;
  }

  /** Devuelve la herramienta actualmente seleccionada para pintar en los lienzos.
      @return Herramienta  Herramienta en uso. */
  public Herramienta getHerramientaEnUso ()
  {
    return herramienta [herramientaEnUso];
  }

  /** Establece la herramienta para pintar en los lienzos.
      @param nuevaHerramientaEnUso byte  Índice de la herramienta que servirá para pintar. */
  public void setHerramientaEnUso (byte nuevaHerramientaEnUso)
  {
    herramientaEnUso = nuevaHerramientaEnUso;
  }

  /** Devuelve el icono que representa una herramienta.
      @param nuevaHerramienta byte  Índice de la herramienta cuyo icono queremos.
      @return ImageIcon             Icono que representa la herramienta especificada. */
  public ImageIcon getIcono (byte nuevaHerramienta)
  {
    return herramienta [nuevaHerramienta].getIcono ();
  }
}



Clase Herramienta

package pintallop;

import java.lang.*;
import java.awt.*;
import javax.swing.*;

/** Clase que representa una de las herramientas de dibujo de 'ColeccionHerramientas'. */
public class Herramienta
{
  // Icono que representa la herramienta.
  private ImageIcon icono;
  // Tipo de la herramienta de dibujo; puede ser:
  // lápiz, goma, línea, rectángulo, óvalo, y texto.
  private byte tipo;
  // Variable para todas las herramientas menos la de texto; representa el grosor del trazo o el borde.
  private byte grueso;
  // Variable para el color del trazo, el borde, o el texto.
  private Color colorBorde;
  // Variable exclusiva de las herramientas rectángulo y óvalo. El color de relleno de la figura.
  private Color colorRelleno;

  // Variables exclusivas de la herramienta de texto.
  // La fuente utilizada, y el texto a escribir en el lienzo.
  private Font fuente;
  private String cadena;
  // Variables para pasar al constructor de 'Font': su nombre, tamaño, y estilo.
  private String nombreFuente;
  private int tamano;
  private int estilo;

  /** Constructor. Crea una herramienta del tipo especificado. Hay que utilizar una de las constantes
      de la clase 'ColeccionHerramientas': LAPIZ, LINEA, RECTANGULO, OVALO, TEXTO, o GOMA.
      @param nuevoTipo byte  Tipo de la herramienta creada. */
  public Herramienta (byte nuevoTipo)
  {
    // Inicializamos todas las variables con valores por defecto.
    tipo = nuevoTipo;
    icono = PintaLlop.getIcono ("herramienta" + tipo + ".gif");
    grueso = 2;
    colorBorde = Color.black;
    colorRelleno = Color.white;
    cadena = "";
    nombreFuente = "SansSerif";
    tamano = 24;
    estilo = Font.PLAIN;
    refrescaFuente ();
  }

  /** Devuelve el tipo de herramienta.
      @return byte  El tipo de la herramienta. */
  public byte getTipo ()
  {
    return tipo;
  }

  /** Devuelve el icono que representa la herramienta.
      @return ImageIcon  Icono de la herramienta. */
  public ImageIcon getIcono ()
  {
    return icono;
  }

  /** Establece el grueso del trazo de la herramienta.
      @param nuevoGrueso byte  Nuevo grueso. */
  public void setGrueso (byte nuevoGrueso)
  {
    // No permitimos gruesos inferiores a 2.
    if (nuevoGrueso < 2)
      return;
    grueso = nuevoGrueso;
  }

  /** Devuelve el grueso del trafo de esta herramienta.
      @return byte  Grueso del trazo. */
  public byte getGrueso ()
  {
    return grueso;
  }

  /** Define el color del trazo, el borde, o el texto de la herramienta.
      @param nuevoColorBorde Color  Nuevo color del trazo, el borde, o el texto. */
  public void setColorBorde (Color nuevoColorBorde)
  {
    colorBorde = nuevoColorBorde;
  }

  /** Devuelve el color del trazo, el borde, o el texto de la herramienta.
      @return Color  Color del trazo, el borde, o el texto de la herramiena. */
  public Color getColorBorde ()
  {
    return colorBorde;
  }

  /** Define el color del relleno de la figura que dibuja de la herramienta.
      @param nuevoColorRelleno Color  Color de relleno de la figura. */
  public void setColorRelleno (Color nuevoColorRelleno)
  {
    colorRelleno = nuevoColorRelleno;
  }

  /** Devuelve el color del relleno de la figura que dibuja de la herramienta.
      @return Color  Nuevo color de relleno de la figura. */
  public Color getColorRelleno ()
  {
    return colorRelleno;
  }

  /** Define el tamaño de la fuente de esta herramienta.
      @param nuevoTamano int  Nuevo tamaño para la fuente. */
  public void setTamano (int nuevoTamano)
  {
    if (nuevoTamano < 1)
      return;
    tamano = nuevoTamano;
    // Refrescar la variable 'fuente'.
    refrescaFuente ();
  }

  /** Devuelve el tamaño de la fuente de esta herramienta.
      @return int  Tamaño de la fuente. */
  public int getTamano ()
  {
    return tamano;
  }

  /** Define el estilo del texto que dibuja de esta herramienta. Se utilizan las constantes de la clase
      'Font': PLAIN, BOLD, o ITALIC.
      @param nuevoEstilo int  Nuevo estilo de la fuente. */
  public void setEstilo (int nuevoEstilo)
  {
    estilo = nuevoEstilo;
    // Refrescar la variable 'fuente'.
    refrescaFuente ();
  }

  /** Devuelve el estilo del texto que dibuja esta herramienta.
      @return int  Estilo del texto. */
  public int getEstilo ()
  {
    return estilo;
  }

  /** Define la cadena de texto que pintará esta herramienta.
      @param nuevaCadena String  Texto a escribir. */
  public void setCadena (String nuevaCadena)
  {
    cadena = nuevaCadena;
  }

  /** Devuelve la cadena de texto que escribirá esta herramienta.
      @return String  Texto que se escribirá. */
  public String getCadena ()
  {
    return cadena;
  }

  /** Define el nombre de la fuente.
      @param nuevoNombreFuente String  Nuevo nombre de la fuente. */
  public void setNombreFuente (String nuevoNombreFuente)
  {
    nombreFuente = nuevoNombreFuente;
    // Refrescar la variable 'fuente'.
    refrescaFuente ();
  }

  /** Devuelve el nombre de la fuente.
      @return String  El nombre de la fuente. */
  public String getNombreFuente ()
  {
    return nombreFuente;
  }

  /** Devuelve la fuente que utiliza la herramienta.
      @return Font  La fuente de la herramienta. */
  public Font getFuente ()
  {
    return fuente;
  }

  /** Establece la fuente utilizando las variables de clase. */
  private void refrescaFuente ()
  {
    fuente = new Font (nombreFuente, estilo, tamano);
  }
}

¿Comentarios, sugerencias?: llopsite.at.yahoo.es | © 2005-07 Albert Lobo

Última actualización: 18-Feb-2007

Hosted by www.Geocities.ws

1