TLlop - Clon del Tetris

Llop Site Home > JAVA > TLlop > Clases que sólo personalizan componentes

Clases que sólo personalizan componentes:

Clase Boton

package ejercicio_5;

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

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

/** Clase que extiende 'JButton' para personalizar un poco su aspecto. */
public class Boton extends JButton
{
  /** Constructor sin argumentos. */
  public Boton ()
  {
    super ();
    /** Se pone el color de fondo, el del texto, la fuente, y un pequeño márgen. */
    setBackground (Color.white);
    setForeground (Color.blue);
    setFont (new Font ("Showcard Gothic", Font.BOLD, 18));
    setBorder (new EmptyBorder (5, 5, 5, 5));
  }

  /** Constructor que, tras una llamada al constructor por defecto, añade una acción a este botón.
      @param accion Action  : Nueva acción para el botón. */
  public Boton (Action accion)
  {
    this ();
    setAction (accion);
  }

  /** Función sobrecargada para pintar el borde del botón.
      @param graficos Graphics  : Contexto 'Graphics' sobre el que pintar. */
  public void paintBorder (Graphics graficos)
  {
    graficos.setColor (Color.blue);
    graficos.drawRoundRect (0, 0, getSize ().width - 1, getSize ().height - 2, 40, 40);
    graficos.drawRoundRect (15, 15, getSize ().width - 25, getSize ().height - 25, 20, 20);
  }
}


Clase Botoncillo

package ejercicio_5;

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

/** Clase que extiende 'JToggleButton' para personalizar un poco su aspecto. */
public class Botoncillo extends JToggleButton
{
  /** Constructor con argumento. Crea un botón seleccionable llamando al constructor sin argumentos,
      y le pone texto.
      @param texto String  : Nuevo texto para el botón. */
  public Botoncillo (String texto)
  {
    this ();
    setText (texto);
  }

  /** Constructor sin argumentos. */
  public Botoncillo ()
  {
    super ();
    /** Se pone el color de fondo, el del texto, y la fuente. */
    setBackground (Color.white);
    setForeground (Color.blue);
    setFont (new Font ("Showcard Gothic", Font.BOLD, 18));
  }

  /** Función sobrecargada para pintar el borde del botón.
      @param graficos Graphics  : Contexto 'Graphics' sobre el que pintar. */
  public void paintBorder (Graphics graficos)
  {
    graficos.setColor (Color.blue);
    graficos.drawRoundRect (5, 5, getSize ().width - 11, getSize ().height - 11, 20, 20);
    graficos.drawRoundRect (10, 10, getSize ().width - 21, getSize ().height - 21, 20, 20);
  }
}


Clase BotoncilloIcono

package ejercicio_5;

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

/** Clase que extiende 'JButton' para personalizar un poco su aspecto. */
public class BotoncilloIcono extends JButton
{
  /** Constructor. */
  public BotoncilloIcono ()
  {
    super ();
    /** El fondo será de color blanco, y habrá un pequeño borde a los lados. */
    setBackground (Color.white);
    setBorder (BorderFactory.createEmptyBorder (0, 10, 0, 10));
  }
}


Clase BotonIcono

package ejercicio_5;

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

/** Clase que extiende 'JToggleButton' para personalizar un poco su aspecto. */
public class BotonIcono extends JToggleButton
{
  /** Constructor que define el icono y el estado de selección del botón.
      @param icono ImageIcon       : Icono que muestra el botón.
      @param seleccionado boolean  : Estado de selección del botón. */
  public BotonIcono (ImageIcon icono, boolean seleccionado)
  {
    super (icono, seleccionado);
    setBackground (Color.white);   // El fondo será blanco.
    setBorder (new EmptyBorder (0, 0, 0, 0));
  }

  /** Función sobrecargada para pintar el borde del botón.
      @param graficos Graphics  : Contexto 'Graphics' sobre el que pintar. */
  public void paintBorder (Graphics graficos)
  {
    graficos.setColor (Color.black);
    graficos.drawRoundRect (5, 5, getSize ().width - 11, getSize ().height - 11, 20, 20);
    graficos.setColor (Color.blue);
    graficos.drawRoundRect (20, 20, getSize ().width - 41, getSize ().height - 41, 40, 40);
  }
}


Clase Etiqueta

package ejercicio_5;

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

/** Clase que extiende 'JLabel' para personalizar un poco su aspecto. */
public class Etiqueta extends JLabel
{
  // La única variable de clase es un borde con título.
  private TitledBorder bordeTitulo;

  /** Constructor. Inicializa una 'JLabel', le pone un número como texto, y pone también texto
      a su borde titulado.
      @param titulo String  : Cadena con el texto del borde titulado.
      @param valor long     : Valor cuya representación en 'String' definirá el texto de la etiqueta. */
  public Etiqueta (String titulo, long valor)
  {
    super (String.valueOf (valor), JLabel.RIGHT);
    /** El título tan solo mostrará el texto, que será de color azul, y con letras 'Showcard Gothic'. */
    bordeTitulo = new TitledBorder (new EmptyBorder (0, 0, 0, 0), titulo);
    bordeTitulo.setTitleColor (Color.blue);
    bordeTitulo.setTitleFont (new Font ("Showcard Gothic", Font.BOLD, 14));
    /** Se pone a la etiqueta el borde, la fuente, y el color de la fuente. */
    setBorder (bordeTitulo);
    setFont (new Font ("Showcard Gothic", Font.ITALIC, 18));
    setForeground (Color.blue);
  }

  /** Función sobrecargada para pintar el borde de la etiqueta.
      @param graficos Graphics  : Contexto 'Graphics' sobre el que pintar. */
  public void paintBorder (Graphics graficos)
  {
    super.paintBorder (graficos);
    graficos.setColor (Color.blue);
    graficos.drawRoundRect (2, 2, getSize ().width - 5, getSize ().height - 5, 40, 40);
    graficos.drawRoundRect (25, 25, getSize ().width - 41, getSize ().height - 41, 20, 20);
  }
}


Clase EtiquetaOpciones

package ejercicio_5;

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

/** Clase que extiende 'JLabel' para personalizar un poco su aspecto. */
public class EtiquetaOpciones extends JLabel
{
  /** Constructor con un argumento. Crea la 'JLabel', y le pone texto.
      @param texto String  : Cadena con el texto que se mostrará en la etiqueta. */
  public EtiquetaOpciones (String texto)
  {
    this ();
    setText (texto);
  }

  /** Constructor por defecto. */
  public EtiquetaOpciones ()
  {
    super ();
    /** Se le pone un tanaño fijo, el color y la alineación del texto, y la fuente. */
    setPreferredSize (new Dimension (30, 25));
    setForeground (Color.blue);
    setHorizontalAlignment (JLabel.CENTER);
    setFont (new Font ("Showcard Gothic", Font.BOLD, 16));
  }
}


Clase PanelTitulado

package ejercicio_5;

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

/** Clase que extiende 'JPanel' para personalizar un poco su aspecto. */
public class PanelTitulado extends JPanel
{
  // Su única variable es un borde con título.
  private TitledBorder bordeTitulo;

  /** Constructor. Define el texto en el borde.
      @param titulo String  : Cadena con el texto que se llevará el título del borde del panel.  */
  public PanelTitulado (String titulo)
  {
    super ();
    /** Inicializa el borde titulado con el texto pasado al constructor como argumento. Además,
        las letras serán de color azul, y de la fuente 'Showcard Gothic'. */
    bordeTitulo = new TitledBorder (new EmptyBorder (0, 0, 0, 0), titulo);
    bordeTitulo.setTitleColor (Color.blue);
    bordeTitulo.setTitleFont (new Font ("Showcard Gothic", Font.BOLD, 20));
    /** El fondo del panel, blanco; las letras, azules; y como borde, el 'bordeTitulo' más uno vacío. */
    setBackground (Color.white);
    setForeground (Color.blue);
    setBorder (new CompoundBorder (new EmptyBorder (5, 5, 5, 5), bordeTitulo));
  }

  /** Función sobrecargada para pintar el borde del botón.
      @param graficos Graphics  : Contexto 'Graphics' sobre el que pintar. */
  public void paintBorder (Graphics graficos)
  {
    super.paintBorder (graficos);
    graficos.setColor (Color.blue);
    graficos.drawRoundRect (0, 0, getSize ().width - 1, getSize ().height - 1, 40, 40);
    graficos.drawRoundRect (10, 15, getSize ().width - 20, getSize ().height - 25, 20, 20);
  }
}


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

Última actualización: 18-Feb-2007

Hosted by www.Geocities.ws

1