Sei sulla pagina 1di 15

CONTENEDORES

Los contenedores descienden de la clase


padre Container, la cual, a su vez, es
descendiente directa de la clase Component.
java.lang.Object
java.awt.Component
java.awt.Container
CONTENEDORES
Para agregar componentes a un contenedor existe un método llamado add(añadir,
agregar), que posee diversas sintaxis:
public Component add (Component comp) // Añade el componente al final del contenedor

public Component add (String name, Component comp) // Añade el componente al final del
contenedor y le asigna un nombre

public Component add (Component comp, int index) // Añade el componente en la posicion
indicada por index. Con –1 lo añade al final

public void add (Component comp, Object constraints) // Añade el componente al final e
indica al Layout las restricciones (x, y, ancho y alto)

public void add (Component comp, Object constraints, int index) // Idem al anterior pero
indicando que agregue el
componente en la posicion index dentro de la lista de
componentes del contenedor
ELIMINAR UN COMPONENTE
Para eliminar componentes del contenedor se
utiliza el método remove, cuya sintaxis es la
siguiente:
public remove (int index) // Elimina el componente que hay
en la posicion index
public remove (Component comp) // Elimina el componente
especificado
CONTENEDOR
Si se desea vaciar el contenedor, el método removeAll es el método indicado:
public void removeAll ( )

Para conocer el número de componentes que hay actualmente insertados en el


contenedor, se puede utilizar el método siguiente:
public int getComponentCount ( )

Obtener el componente situado en un posición específica en la lista de componentes


del contenedor es muy sencillo. El método getComponent se encarga de ello:

Public Component getComponent (int n)


CONTENEDOR
Es posible también obtener el componente en relación a unas coordenadas específicas
dentro del contenedor. Para ello, hay varios métodos:
public Component getComponentAt (int x, int y)
public Component getComponentAt (Point p)
public findComponentAt (int x, int y)
public findComponentAt (Point p)
CONTENEDOR
Es posible también obtener el componente en relación a unas coordenadas específicas
dentro del contenedor. Para ello, hay varios métodos:
public Component getComponentAt (int x, int y)
public Component getComponentAt (Point p)
public findComponentAt (int x, int y)
public findComponentAt (Point p)

La diferencia entre el método getComponentAt y findComponentAt es


quegetComponentAt busca en el hijo más inmediato, mientras
quefindComponentAt puede buscar dentro de hijos anidados.
CONTENEDOR
En este caso, si se desea conocer si un componente dado está contenido dentro del contenedor, existe
un método:
public boolean isAncestorOf (Component c)
Este método retorna true si el componente está contenido dentro del contenedor, o false en caso
contrario.
Los contenedores poseen la habilidad de pintar, y poseen varios métodos que sirven para pintar en el
contenedor en un determinado momento:
public void paint (Graphics g) // Cuando se repinta todo el contenedor
public void update (Graphics g) // Cuando se actualiza el contenedor
public void print (Graphics g) // Cuando se imprime el contenedor
public void paintComponents (Graphics g) // Cuando se repinta cada
componente
public void printComponents (Graphics g) // Cuando se imprime cada
componentes
CONTENEDOR
Los contenedores poseen también la habilidad de validar o no su contenido. Esto se consigue gracias a algunos
métodos especiales:
public void invalidate ( ) // Invalida el contenedor
public void validate ( ) // Valida el contenedor y sus subcomponentes
Cuando se invalida un contenedor, éste y sus padres son marcados como que necesitan reorganizarse.
Cuando se valida el contenedor, el contenedor y sus subcomponentes son reorganizados. El uso
habitual de estos métodos se realiza cuando se han añadido, eliminado o modificado sus
subcomponentes.
Los contenedores poseen la facultad de organizar sus subcomponentes gracias a
los Layouts (disposiciones u organizadores). Para gestionar dichos organizadores existen varios
métodos, algunos son :
public void setLayout (LayoutManager mgr) // Establece el tipo de disposicion
public LayoutManager getLayout ( ) // Obtiene el tipo de disposicion
public void doLayout ( ) // Reorganiza la disposicion del contenedor
CONTENEDOR
Todos los métodos aquí vistos son comunes a todos los tipos de contenedores. Como se indicó desde un
principio, la clase Container es la clase padre de los contenedores, y pone a disposición de las clases más
especializadas (cada tipo de contenedor) estos métodos y los heredados de la clase Component.
Tipos de contenedores
Todos los métodos aquí vistos son comunes a todos los tipos de contenedores. Como se indicó desde un
principio, la clase Container es la clase padre de los contenedores, y pone a disposición de las clases más
especializadas (cada tipo de contenedor) estos métodos y los heredados de la clase Component.
En sí, la clase Container no se utiliza directamente, pues es una clase abstracta que define el comportamiento
de los distintos tipos de contenedores. Sin embargo, sí es utilizada para extenderla y crear clases más
especializadas. No obstante, Java posee varios tipos de contenedores, dispuestos en la siguiente jerarquía:
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Panel
java.applet.applet
java.awt.ScrollPane
java.awt.Window
java.awt.Dialog
java.awt.FileDialog
java.awt.Frame
Tipos de contenedores
Panel
Un panel es la clase de contenedor más simple, ya que únicamente proporciona el
espacio para contener otros componentes y contenedores

Applet
Un applet es un contenedor que deriva de la clase Panel. Además de proporcionar
espacio para contener otros componentes, tiene la funcionalidad de ser una
aplicación autónomo e independiente dentro de una página web.
Tipos de contenedores
ScrollPane
Este tipo de contenedor puede implementar desplazamientos horizontales y/o
verticales para poder acceder a posiciones de sus componentes hijos, si éstos no
son visualizados.

Window
Representa el nivel más básico de una ventana, sin bordes ni menús. Una instancia
de una ventana no puede estar contenida dentro de otro contenedor.
Tipos de contenedores
Dialog
Es una especialización de una ventana, y muestra bordes y título, y es utilizada comúnmente como
formularios de entrada por los usuarios.
FileDialog
Es una especialización de un diálogo (Dialog), permitiendo al usuario seleccionar navegar por los
discos para seleccionar ficheros o archivos.
Frame
Un frame (marco) es una especialización de ventana y muestra bordes y título, y además pueden
tener menús. La diferencia con los diálogos es que éstos son dependientes de una ventana padre. Si
esta ventana padre se minimiza, se restaura o se cierra, automáticamente los diálogos también se
minimizan, se restauran o se cierran. Además, los diálogos pueden redimensionarse o moverse,
pero no minimizarse ni maximizarse.
Constructores
public Container ( )

Métodos
public Component add (Component comp)
public Component add (String name, Component comp)
public Component add (Component comp,int index)
public void add (Component comp, Object constraints)
public void add (Component comp, Object constraints, int index)
public remove (int index)
public remove (Component comp)
public void removeAll ( )
public int getComponentCount ( )
public Component getComponent (int n)
public Component getComponentAt (int x, int y)
public Component getComponentAt (Point p)
public findComponentAt (int x, int y)
Metodos
public findComponentAt (Point p)
public boolean isAncestorOf (Component c)
public void paint (Graphics g)
public void update (Graphics g)
public void print (Graphics g)
public void paintComponents (Graphics g)
public void printComponents (Graphics g)
public void invalidate ( )
public void validate ( )
public void setLayout (LayoutManager mgr)
public LayoutManager getLayout ( )
public void doLayout ( )

Potrebbero piacerti anche