Ventanas y Objetos Gráficos
CREACION DE VENTANAS PARA APLICACIONES Una ventana corresponde a un conjunto de objetos anidados u ordenados jerarquicamente desde el elemento más exterior hasta el más interior, dichos elementos se encuentran en el paquete AWT y como son muy empleados y existen muchos se pueden importar todas las clases que componen dicho paquete para hacer más fácil el trabajo con éstas y evitar el hacer muchos llamados. Para la organización de algunos objetos en la ventana no se dispone de sentencias para la ubicación en un punto determinado pero si existen Administradores de Diseños que corresponden al administrador que usa el panel para organizar los distintos elementos en la pantalla. Dentro de los recursos disponibles para el diseño e implementación de las ventanas se encuentran los siguientes: • •
•
•
De Ventana: Ventanas, Cuadros de Dialogo, Barras de Menús. Éstos recursos son muy empleados en Applets. Contenedores: Corresponden a componentes AWT genéricos que incluyen a otros elementos u objetos que pueden ser también contenedores siendo el panel el más simple de éstos, pero también el más empleado ya que la Clase Applet corresponde a una Subclase de la Superclase Panel. Lienzos: Al igual que para los pintores, éste recurso corresponde para el programador Java a una superficie en donde puede dibujar lo que quiera pero que no puede ser empleado como contenedor, aunque si dentro de estos. Objetos: También conocidos como componentes UI o componentes de la Interfáz de Usuario dentro de los que se encuentran: Botones, Campos de Texto, Etiquetas, Meús Desplegables, Listas, Casillas de Verificación, Radio Botones y otros elementos propios de las ventanas en ambientes gráficos.
Los componentes de la interfaz de usuario se derivan en su gran mayoría de la clase Component la cual es una clase abstracta que define todas las características comunes a los componentes visuales: Características Comunes: • Tratamiento de teclado y encaminamiento de la entrada de teclado • Entrada de Ratón • Notificaciones de Activación/Desactivación de Ventanas • Posicionamiento en Pantalla • Control de Repintado
Luis F. Niño O.
-
1
Ventanas y Objetos Gráficos
DISTRIBUCIÓN ESQUEMÁTICA DE LOS OBJETOS AWT Component “Componente” Container “Contenedor” : Éstos llevan asociado un objeto Layout Manager. ♦ Panel : Para la representación de objetos gráficos en la ventana actual. Applet ♦ Window “Ventana” : Para la representación de objetos gráficos ventanas. Dialog “Cuadro de Dialogo” FileDialog Frame “Cuadro o Marco” : Corresponden a las Ventanas Normales. TextComponent “Componente de Texto” ♦ TextArea “Área de Texto” ♦ TextField “Campo de Texto” Label “Etiqueta” Button “Botón” Canvas “Lienzo” Checkbox “Casillas de Verificación” Choice “Menú Desplegable” List “Listas” Scrollbar “Barras de Desplazamiento” Los objetos LayoutManayer son los encargados de distribuir los objetos gráficos que se van creando dentro del contenedor sobre el cual se hace la referencia de adición. La forma en que se van distribuyendo los objetos dentro del contenedor depende de la naturaleza del mismo, existiendo formatos para la distribución como: •
FlowLayout : Los objetos se distribuyen de Izquierda a Derecho, de Arriba a Abajo en orden de adición y organizados de acuerdo a la alineación que por defecto es Centrada.
•
GridLayout : Los objetos se distribuyen en cada uno de los cuadros de la cuadricula, desde el primero ubicado en la parte Superior Izquieda hasta el último ubicado en la parte Inferior Derecha (De Izq. a Derecha y de Arriba a Abajo).
•
GridBagLayout : Para la distribución de cada uno de los objetos se requiere de la creación de otro que permite su ubicación específica dentro del contenedor donde se le requiera.
•
BorderLayout : Contenedor de frontera. Norte, Sur, Oeste/Oriente, Central, Este/Occidente.
• CardLayout : Contenedor tipo Tarjeta. Se emplea como visualizador de diapositivas. El administrador que usa el panel para organizar la pantalla la Secciona y define el método de adición de objetos a ésta. El método setLayout permite crear un administrador de diseño para un panel determinado: Luis F. Niño O. -
2
Ventanas y Objetos Gráficos
• • •
setLayout(new FlowLayout); // Por defecto FlowLayout.CENTER setLayout(new FlowLayout(FlowLayout.LEFT)); // Por defecto 3 Píxeles H y V. setLayout(new FlowLayout(FlowLayout.RIGTH), #H, #V);
•
setLayout(new GridLayout(#f, #c, #h, #v));
• •
setLayout(new BorderLayout()); setLayout(new BorderLayout(#h, #v));
Así como se puede ajustar el espacio en píxeles entre las columnas y la filas también se pueden ajustar los márgenes Superior, Izquierdo, Inferior y Derecho de un Panel, para ésto, sobreponiendo el método inset así: Public Insets insets() { return new Insets(#Sup, #Inf, #Izq, #Der); }
OBJETOS O COMPONENTES GRÁFICOS MÁS COMUNES
•
Label o Etiqueta Label Nombre_Etiqueta = new Label(“Texto”, Label.CENTER); add(Nombre_Etiqueta); add(new Label(“Texto”, Label.CENTER)); - .getText() - .setText(Cadena) - .getAlignment() - .setAlignment(#)
•
Button o Botón Button Nombre_Botón = new Button(); Button Nombre_Botón = new Button(“Etiqueta”); add(Nombre_Botón); - .getLabel() - .setLabel(“Etiqueta”);
•
TextField o Campo de Texto TextField Nombre_CampoTexto = new TextField (); TextField Nombre_CampoTexto = new TextField (#); TextField Nombre_CampoTexto = new TextField (cadena); TextField Nombre_CampoTexto = new TextField (cadena, #); Luis F. Niño O.
-
3
Ventanas y Objetos Gráficos
•
•
•
- .getText() - .setText(cadena) - .getColumns() - .Select(#i, #f) - .SelectAll() - .isEditable() - .isEditable(true/false) - .getEchoChar() - .setEchoCharacter(‘c’) - .echoChartIsSet() Checkbox o Casilla de Verificación Checkbox Nombre_Casilla = new Checkbox(); Checkbox Nombre_Casilla = new Checkbox (Cadena); Checkbox Nombre_Casilla = new Checkbox (Cadena, null, true/false); add(Nombre_Casilla); - .getLabel() - .setLabel(cadena) - .getState() - .setState(true/false) CheckGroup o Casillas de Verificación Exclusivas “Grupos de Casillas de V” CheckboxGroup Grupo = new CheckboxGroup(); ---* Checkbox RadioBotón = new Checkbox (Cadena, Grupo, true/false); add(Grupo); - .getCurrent() - .setCurrent(Grupo) add(Nombre_Casilla); - .getCheckboxGroup() - .setCheckboxGroup(Grupo) Choice o Menú Desplegable “Permiten una sola selección” Choice Menú = new Choice(); ---* Menú.addItem(“Texto Opción”); ... add(Menú); - .getItem(#) - .countItems() - .SelectedIndex() - .getSelectedItem(); //Devuenve una cadena - .select(#) - .select(“Texto Opción”)
Luis F. Niño O.
-
4