Curso de JavaJesús Cáceres Tello Pág. 1 - 5El objeto JLayeredPaneUn LayeredPane es un componente Swing que proporciona una...
Curso de JavaJesús Cáceres Tello Pág. 2 - 5en las diferentes capas y los frames de al misma capa.Las clases JFrame, JApple...
Curso de JavaJesús Cáceres Tello Pág. 3 - 5La posición de un componente determina su relación con otros componentes de lam...
Curso de JavaJesús Cáceres Tello Pág. 4 - 5El API LayeredPaneLas siguientes tablas listan los métodos y constructores más ...
Curso de JavaJesús Cáceres Tello Pág. 5 - 5Posicionar Componentes en una CapaMétodo Propósitovoid setPosition(Component, i...
Próxima SlideShare
Cargando en…5
×

Java layered pane

1.531 visualizaciones

Publicado el

tutojava

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.531
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
14
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Java layered pane

  1. 1. Curso de JavaJesús Cáceres Tello Pág. 1 - 5El objeto JLayeredPaneUn LayeredPane es un componente Swing que proporciona una tercera dimensiónpara posicionar componentes: profundidad, también conocida como eje Z.Cuando se añade un componente a un panel por capas, se especifica suprofundidad. Los frames con mayor profundidad siempre solapan los frames conmenor profundidad y los frames con menor profundidad siempre están debajo deframes con mayor profundidad. Los frames con la misma profundidad puedencambiar su posición. Por conveniencia, LayeredPane define varias layers (capas)dentro del rango posible de profundiades para funciones específicas. Por ejemplo,podemos poner un componente en la capa de mayor funcionalidad, la capa dearrastre, cuando se arrastan componentes.Todo contenedor Swing que tiene un panel raíz, como JFrame, JApplet, JDialog,y JInternalFrame -- automáticamente tiene un layeredpane, aunque la mayoríade los programas no los utilizan explícitamente. Podemos crear nuestro propiolayeredpane y utilizarlo en cualquier lugar como un contenedor normal Swing.Swing proporciona dos clases de paneles por capas. La primera, JLayeredPane, esla clase que utilizan los paneles raíz. La segunda, JDesktopPane, es una subclasede JLayeredPane que está especializada para contener frames internos. Elejemplo de esta sección utiliza un ejemplar de JLayeredPane.Aquí podemos ver una imagen de una aplicación que utiliza paneles de capas paramanejar JInternalFrames en diferentes capas:Cuando arranca el programa se crean cinco frames internos. El programa permitemover el icono “Duke” alrededor de los frames. Observa la relación de los frames
  2. 2. Curso de JavaJesús Cáceres Tello Pág. 2 - 5en las diferentes capas y los frames de al misma capa.Las clases JFrame, JApplet, JDialog, y JInternalFrame proporcionan un métodode conveniencia, getLayeredPane, para obtener el panel raíz del layeredpane. Elprograma anterior utiliza este método para obtener el layeredpane al que añadirlelos frames internos:Las líneas en negrita muestran dónde se añade al frame al layeredpane. El métodoadd utilizado en este programa toma dos argumentos. El primero es el componentea añadir; el segundo es un Integer indicando la profundidad donde poner elcomponente. El valor puede ser cualquier Integer. Sin embargo, la mayoría de losprogramas utilizarán uno de aquellos definidos por la clase JLayeredPane:Nombre de Capa Valor DescripciónFRAME_CONTENT_LAYERnew Integer(-30000)Esta capa es utiliza para posicionar el panelde contenido del frame y la barra de menú.La mayoría de los programas no la utilizarán.DEFAULT_LAYERnewInteger(0)La mayoría de los componentes van en estacapa.PALETTE_LAYERnewInteger(100)Esta capa es útil para paletas y barras deherramientas flotantes.MODAL_LAYERnewInteger(200)Los diálogos modales, como aquellosproporcionados por JOptionPane,pertenecen a esta capa.POPUP_LAYERnewInteger(300)Los desplegables van en esta capa porquenecesitan aparecer por encima de todo.DRAG_LAYERnewInteger(400)Un componente se mueve a esta capa cuandose arrasta. Se debe devolver el componente asu capa normal cuando se suelta.
  3. 3. Curso de JavaJesús Cáceres Tello Pág. 3 - 5La posición de un componente determina su relación con otros componentes de lamisma capa. Al contrario que los números de capas, cuando más bajo sea elnúmero de posición más alto estará el componente en su capa.Se puede seleccionar la posición de un componente cuando se le añade allayeredpane proporcionando un tercer argumento al método add. Las posiciones seespecifican con un int entre -1 y (N-1), donde N es el número de componentes enla capa. Utilizar -1 es lo mismo que utilizar N-1; indica la posición más inferior.Utilizar 0 especifica que el componente debería ir en la posición superior de sucapa. Como se ve en la siguiente figura, con la excepción de -1, un número deposición menor indica una posición superior dentro de la capa.Tanto la capa de un componente como su posición relativa dentro de la capapueden cambiar. Para cambiar la capa de un componente normalmente se utiliza elmétodo setLayer. Para cambiar la posición de un componente dentro de su capa,se puede utilizar los métodos moveToBack y moveToFront proporcionados porJLayeredPane.Una Nota de Precaución: Cuando se añade un componente a una LayeredPane seespecifica la capa con un Integer. Cuando se utiliza setLayer para cambiar la capade un componente, se utiliza un int. Mira las tablas que hay abajo para comprobarlos tipos de los argumentos y de los valores de retorno para otros métodos de estaclase que trabajan con capas.
  4. 4. Curso de JavaJesús Cáceres Tello Pág. 4 - 5El API LayeredPaneLas siguientes tablas listan los métodos y constructores más utilizados de la claseJLayeredPane. Otros métodos interesantes están definidos por las clasesJComponent y Component.El API para utilizar LayeredPane se divide en estas categorías:Crear u Obtener un LayeredPaneMétodo PropósitoJLayeredPane() Crea un LayeredPane.JLayeredPane getLayeredPane()(en JApplet, JDialog, JFrame, y JInternalFrame)Obtiene el LayeredPAne en un applet, dialog,frame, o frame interno.Situar Componentes en CapasMétodo Propósitovoid add(Component, Integer)void add(Component, Integer, int)Añade el componente especificado allayeredpane. El segundo argumento indica lacapa. El tercer argumento, cuando existe, indicala posición del componente dentro de la capa.void setLayer(Component, int)void setLayer(Component, int, int)Cambia la capa del componente. El segundoargumento indica la capa, el tercer argumento,cuando existe, indica la posición del componentedentro de la capa.int getLayer(Component)int getLayer(JComponent)Obtiene la capa del componente especificado.int getComponentCountInLayer(int)Obtiene el número de componentes en la capaespecificada. El valor devuelto por este métodopuede ser útil para calcular los valores deposición.Component[]getComponentsInLayer(int)Obtiene un array con todos los componentes enel capa especificada.int highestLayer()int lowestLayer()Calcula la capa más alta o más baja actualmenteutilizadas.
  5. 5. Curso de JavaJesús Cáceres Tello Pág. 5 - 5Posicionar Componentes en una CapaMétodo Propósitovoid setPosition(Component, int)int getPosition(Component)Selecciona u obtiene la posición del componenteespecificado dentro de su capa.void moveToFront(Component)void moveToBack(Component)Mueve el componente especificado adelante o atrásen su capa.

×