java avanzado modulo 1-3

21
6/12/2011 1 MODULO 1 CLASE 3 1.6 Frames Internos JPanel JInternalFrame JDesktopPane JScrollPane JTabbedPane JToolBar

Upload: david-amezcua-jurado

Post on 02-Dec-2015

222 views

Category:

Documents


6 download

DESCRIPTION

java en español

TRANSCRIPT

Page 1: Java Avanzado Modulo 1-3

6/12/2011

1

MODULO 1CLASE 3

1.6 Frames Internos

JPanelJInternalFrameJDesktopPaneJScrollPaneJTabbedPaneJToolBar

Page 2: Java Avanzado Modulo 1-3

6/12/2011

2

1.6.1 JPanel

JPanel es un contenedor de propósito general paracomponentes de peso ligero. Como todos loscontenedores, utiliza un Controlador de Distribuciónpara posicionar y dimensionar sus componentes.

Los métodos que más se utilizan de un objeto JPanelson aquellos que hereda de sus superclasesJComponent, Container y Component.

1.6.1 JPanel

Page 3: Java Avanzado Modulo 1-3

6/12/2011

3

1.6.2 JInternalFrame

Con la clase JInternalFrame, se puede mostrar un JFrame -­‐ comouna ventana dentro de otra ventana. Para crear un frame internoque parezca un diálogo sencillo, se pueden utilizar los métodosshowInternalXxxDialog de JOptionPane.

Normalmente, los frames internos se muestran dentro de unJDesktopPane.

El código para utilizar frames internos es similar en muchas formasal código para utilizar frames normales Swing. Como los framesinternos tienen sus paneles raíz, configurar el GUI para unJInternalFrame es muy similar a configurar el GUI para un JFrame.

JInternalFrame también proporciona otro API, como pack, que lohace similar a JFrame.

1.6.2 JInternalFrame

Page 4: Java Avanzado Modulo 1-3

6/12/2011

4

1.6.3 JDesktopPane

JDesktopPane es una subclase de JLayeredPane al que sele ha añadido el API para manejar el solapamiento demúltiples frames internos.

Generalmente, se pone el panel superior dentro delpanel de contenido de un JFrame.

1.6.4 JScrollPane

Un JScrollPane proporciona una vista desplazable de uncomponente ligero.

Cuando el estado de la pantalla real está limitado, se utiliza unScrollPane para mostrar un componente que es grande o cuyotamaño puede cambiar dinámicamente.

Page 5: Java Avanzado Modulo 1-3

6/12/2011

5

1.6.5 JTabbedPane

Con la clase JTabbedPane, podemos tener varios componentes(normalmente objetos JPanel) compartiendo el mismo espacio.

El usuario puede elegir qué componente ver seleccionando lapestaña del componente deseado.

1.6.5 JTabbedPane

Page 6: Java Avanzado Modulo 1-3

6/12/2011

6

1.6.5 JTabbedPane

1.6.5 JTabbedPane

Page 7: Java Avanzado Modulo 1-3

6/12/2011

7

1.6.5 JTabbedPane

1.6.6 JToolBar

Un objeto JToolBar crea una barra de herramientas con iconosdentro de una fila o una columna.

Normalmente las barras de herramientas proporcionan acceso afuncionalidades que también se encuentran en ítems de menús.

Page 8: Java Avanzado Modulo 1-3

6/12/2011

8

1.6.6 JToolBar

1.7 Cuadros de diálogo

Los diálogos son ventanas más limitadas que los Frames.

Los diálogos pueden ser:

No modales.

No impiden a los usuarios interactuar con la aplicación con laque están, o con otras, mientras el cuadro esté abierto.

Modales.

Impiden que los usuarios interactúen con la aplicación hastaque el diálogo sea cerrado, sin embargo, no impiden lainteracción con otras aplicaciones mientras el diálogo estáabierto.

Page 9: Java Avanzado Modulo 1-3

6/12/2011

9

1.7 Cuadros de diálogo

Para crear diálogos a medida, y que si se desea nosean modales, hay que emplear la clase JDialog.

1.7.1 JOptionPane

showMessageDialog

Muestra un diálogo modal con un botón, etiquetado "OK". Se puede especificar fácilmente elmensaje, el icono y el título que mostrará el diálogo.

showConfirmDialog

Muestra un diálogo modal con dos botones, etiquetados "Yes" y "No". Estas etiquetas no sonsiempre terriblemente descriptivas con las actiones específicas del programa que causan.

showInputDialog

Muestra un diálogo modal que obtiene una cadena del usuario. Un diálogo de entrada muestra uncampo de texto para que el usuario teclee en él, o un ComboBox no editable, desde el que elusuario puede elegir una de entre varias cadenas.

showOptionDialog

Muestra un diálogo modal con los botones, los iconos, el mensaje y el título especificado, etc. Coneste método, podemos cambiar el texto que aparece en los botones de los diálogos estándar.También podemos realizar cualquier tipo de personalización..

Page 10: Java Avanzado Modulo 1-3

6/12/2011

10

1.7.2 JFileChooser

La clase JFileChooser proporciona un interfaz para elegir un fichero de una lista.

Un selector de ficheros es un componente que podemos situar en cualquier lugar del GUI de nuestro programa.

Los selectores de ficheros se utilizan comúnmente para dos propósitos:

1. Para presentar una lista de ficheros que pueden ser abiertos por la aplicación.

2. Para permitir que el usuario seleccione o introduzca el nombre de un fichero a grabar.

El selector de ficheros ni abre ni graba ficheros.

Presenta un GUI para elegir un fichero de una lista. El programa es responsable de hacer algo con el fichero, como abrirlo o grabarlo.

1.7.3 JColorChooser

Se puede utilizar la clase JColorChooser para proporcionar a los usuarios una paleta para elegir colores.

Un selector de color es un componente que se puede situar en cualquier lugar dentro del GUI de un programa.

Page 11: Java Avanzado Modulo 1-3

6/12/2011

11

1.8 Administradores de diseño ( Layouts )

Cómo se colocan los componentes (usando el método add) depende de la composición (layout).

1.8.1 BorderLayout

Se ponen los componentes en un lateral o en el centro.

Por defecto, en marcos.

Page 12: Java Avanzado Modulo 1-3

6/12/2011

12

1.8.2 FlowLayout

Los componentes se ponen de izquierda a derecha hasta llenar la línea, y se pasa a la siguiente. Cada línea se centra.

Por defecto, en paneles y applets.

1.8.3 GridLayout

Se colocan los componentes en una rejilla rectangular (filas x cols).

Se añaden en orden izquierda-­‐derecha y arriba-­‐abajo.

Page 13: Java Avanzado Modulo 1-3

6/12/2011

13

1.9 Menús

Un menú proporciona una forma de ahorrar espacio y permitir al usuario elegir una entre varias opciones.

1.9.1 JMenuBar

Este componente es muy útil ya que representa labarra de menú que vemos siempre en todoprograma y es muy útil para acceder ala información de forma mas fácil y organizada.

Page 14: Java Avanzado Modulo 1-3

6/12/2011

14

1.9.2 JMenu

Un menú es un objeto que se le añade al JMenuBar, y sirve paraalmacenar items comunes.

JMenu menu=new JMenu();

Esto crea un menú vacio sin texto.

JMenu menu=new JMenu(String texto);

Esto crea un menú con el texto que especificamos.

1.9.3 JMenuItem

Un JMenuItem es un elemento del menú y al ser pulsado genera unevento, o sea, abre una ventana, pide datos o cualquier evento.

JMenuItem elemento=new JMenuItem();

Esta instrucción crea un elemento de menú por defecto, sin texto niiconos.

JMenuItem elemento=new JMenuItem(String texto);

Esto crea un elemento de menú con el texto especificado.

JMenuItem elemento=new JMenuItem(String texto, Icono imagen);

Page 15: Java Avanzado Modulo 1-3

6/12/2011

15

1.9.4 JCheckBoxMenuItem

Crea un ítem de menú que se parece y actúa como un checkbox.

Si se especifica un icono, el ítem de menú utiliza el icono en vez delicono por defecto de los checkboxes. El argumento string, si existe,especifica el texto que debería mostrar el ítem de menú.

Si se especifica true para el argumento booleano, el ítem de menúestará inicialmente seleccionado. De lo contario el ítem de menúestá desactivado.

1.9.5 JRadioButtonMenuItem

Crea un ítem de menú que se parece y actúa como un radiobuttom.

Si se especifica un icono, el ítem de menú utiliza el icono en vez delicono por defecto de los botones de radio.

El argumento string, si existe, especifica el texto que deberíamostrar el ítem de menú. El ítem de menú está inicialmentedesactivado.

Page 16: Java Avanzado Modulo 1-3

6/12/2011

16

1.9.6 JPopUpMenu

Crea un menú desplegable. El argumento stringopcional especifica el título que el aspecto ycomportamiento podría mostrar como parte de laventana desplegable.

1.9.7 Manejo de eventos de menús public void actionPerformed( ActionEvent evento )

// procesar selección de colorfor ( int cuenta = 0;; cuenta < elementosColor.length;; cuenta++ )

if ( elementosColor[ cuenta ].isSelected() ) pantallaEtiqueta.setForeground( valoresColor[ cuenta ] );;break;;

// procesar selección de tipo de letra

for ( int cuenta = 0;; cuenta < tiposLetra.length;; cuenta++ )

if ( evento.getSource() == tiposLetra[ cuenta ] ) pantallaEtiqueta.setFont(

new Font( tiposLetra[ cuenta ].getText(), estilo, 72 ) );;

break;;

repaint();;

Page 17: Java Avanzado Modulo 1-3

6/12/2011

17

1.10 Controles

JSpinnerJSliderJProgressBarJTableJTree

1.10.1 JSpinner

El JSpinner es un componente java en el que sepresenta una caja de texto con dos flechitas en ellado derecho, una hacia arriba y la otra hacia abajo.En el campo de texto se muestra un valor. Con lasflechitas arriba y abajo podemos incrementar odecrementar ese valor.

Page 18: Java Avanzado Modulo 1-3

6/12/2011

18

1.10.2 JSlider

Se utiliza un JSlider para permitir que el usuario introduzca un valornumérico limitado por una valor máximo y un valor mínimo.

Mediante la utilización de un Slider en vez de textfield, se eliminanerrores de entrada.

1.10.3 JProgressBar Una barra de progreso que muestra gráficamente qué cantidad total de latarea.

Si queremos más control sobre la configuración de la barra de progreso.

Si estamos trabajando directamente con una barra de progreso, podemoshacer que se muestre verticalmente, podemos proporcionar una cadenapara que la muestre, podemos registrar oyentes de cambio, y podemosproporcionarle un modelo de datos personalizado.

Necesitamos más de una barra de progreso. Con algunas tareas,necesitamos monitorizar más de un parámetro. Por ejemplo, un programade instalación podría monitorizar el espacio de disco utilizado además delnúmero de ficheros que ya han sido instalados.

Page 19: Java Avanzado Modulo 1-3

6/12/2011

19

1.10.4 JTable

Con la clase JTable, se pueden mostrar tablas de datos, yopcionalmente permitir que el usuario los edite.

JTable no contiene ni almacena datos, simplemente esuna vista de nuestros datos.

1.10.5 JTree Con la clase JTree, se puede mostrar un árbol dedatos.

JTree realmente no contiene datos, simplementees un vista de ellos.

Cada fila contiene exactamente un ítem de datos(llamado un nodo).

Cada árbol tiene un nodo raíz (llamado Root), delque descienden todos los nodos.

Los nodos que no pueden tener hijos se llamannodos leaf (hoja).

Normalmente el usuario puede expandir ycontraer los nodos que no son hojas haciendo quesus hijos sean visibles o invisibles pulsando sobreél. Por defecto, los nodos que no son hojasempiezan contraídos.

Page 20: Java Avanzado Modulo 1-3

6/12/2011

20

1.11 Eventos Eventos o sucesos

Mensajes asíncronos producidos por interacción.

Interacción del usuario con la interfaz gráfica de un programa

Ejemplo:

1. Interacción con el ratón (hacer click, arrastrar, mover, etc).

2. Introducir texto en un determinado campo.

Estos mensajes son objetos.

La programación basada en eventos consiste en proporcionar métodosque respondan a dichos mensajes

1.11.1 Modelo de delegación de eventos.

Delegación

La responsabilidad de gestionar un evento, que ocurre en un objeto (fuente), la tiene otro objeto(oyente).

Fuente (Source)

Objeto que origina o lanza eventos.En el API de cada objeto se define el conjunto de eventos que originaProporciona un conjunto de métodos para registrar y eliminar oyentes específicos para estoseventos

set<TipoEvento>Listener -­‐ un único oyente add<TipoEvento>Listener -­‐ múltiples oyentes remove<TipoEvento>Listener -­‐ elimina un oyente

Oyente (Listener)

Objeto que gestiona o responde a los eventosDefine uno o más métodos a ser invocados por la fuente de eventos en respuesta a cada eventoespecíficoObjeto que implementa el interfaz <TipoEvento>Listener

Page 21: Java Avanzado Modulo 1-3

6/12/2011

21

1.11.1 Modelo de delegación de eventos.

Como hay interfaces oyentes que pueden distintos subtipos deeventos la clase gestora del evento debe implementar todos los métodos.

MouseListener

Mouse-­‐down, mouse-­‐up, mouse-­‐enter, etc.

Para cada interfaz oyente que contenga más de un método, enjava.awt.event se define una clase abstracta adaptadora.

Proporciona métodos vacios para los métodos de la interfaz.

Nombrado: <Interfaz>Adapter

MouseAdapter, WindowAdapter, ContainerAdapter.

Simplifican el desarrollo ya que se pueden especializar los adaptadores yreescribir sólo los métodos relacionados con los eventos en los que estáinteresado.

Eventos de Ratón y Teclado

PRACTICA