Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Febrero del 2018)
608 visualizaciones desde el 5 de Febrero del 2018
1,2 MB
51 paginas
Creado hace 13a (13/04/2012)
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9. AWT (Abstract Window Toolkit)
Índice
9.0 Introducción
9.1 Contenedores
9.2 Layouts
9.3 Componentes
9.4 Eventos
9.5 Swing
9.6 HowTo Swing
9.7 Ejemplo
9.8 Applets
David Contreras Bárcena
187
9. AWT (Abstract Window Toolkit)
AWT es el acrónimo del X Window Toolkit para Java.
Es una biblioteca de clases Java para el desarrollo de
Interfaces de Usuario Gráficas.
La versión del AWT que Sun proporcionó con el JDK se
desarrolló en sólo dos meses y es la parte más débil de todo
lo que representa Java como lenguaje.
Por este motivo se ha implementado el entorno gráfico
llamado Swing, desarrollado conjuntamente con Netscape.
Un entorno muy potente con todas las mejoras visuales que
hoy en día se ofrecen.
David Contreras Bárcena
188
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9. AWT (Abstract Window Toolkit)
Proporciona al programador todos los elementos necesarios
para desarrollar aplicaciones gráficas, como son ventanas,
botones, etc… y un sistema de eventos para gestionar las
acciones producidas por el usuario con cualquier elemento
de la aplicación.
David Contreras Bárcena
189
9. AWT – java.awt
Object
…
Component
Cursor
Event
FlowLayout
…
Button
Canvas
List
Container
Label
TextComponent
JComponent
Panel
Window
ScrollPane
TextField
TextArea
Dialog
Frame
JWindow
FileDialog
JDialog
JFrame
javax.swing
David Contreras Bárcena
190
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9. AWT – Estructura de una aplicación GUI
Objetos que debe contener toda aplicación GUI:
9.1 Contenedores (Containers): Elementos que se emplean para
colocar componentes en la ventana. La forma en la que se
distribuyan estos objetos en el container, dependerá del Layout
que se aplique al mismo. Un container que no posea un layout,
sólo podrá colocar un componente sobre sí mismo. Tipos de
container:
Ventanas: Elemento donde se muestra cualquier contenido visual.
Paneles: Una ventana podrá contener tantos paneles como le permita el
layout. Un panel, a su vez, deberá aplicar un layout para agregar
componentes.
David Contreras Bárcena
191
9. AWT – Estructura de una aplicación GUI
9.2 Layout Manager:
Indican la forma de organizar los componentes dentro del container.
Determinan el tamaño y posición de los componentes.
Pasos a dar:
1. Crear el container.
2. Aplicar el tipo de Layout Manager.
3. Agregar los componentes al container.
Tipos de Layout Manager más importantes (todos elllos heredan del
interface LayoutManager):
•
FlowLayout
•
BorderLayout
• GridLayout.
•
•
BoxLayout
CardLayout
David Contreras Bárcena
192
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9. AWT – Estructura de una aplicación GUI
9.3 Componentes (Components): Representan cada uno de los
controles que aparecen en toda ventana (botones, cajas de texto,
menús, ...)
David Contreras Bárcena
193
9.1 Contenedores - Ventanas
La clase Window permite crear ventanas cualquier tipo.
Subclases:
Frame: es la típica ventana de aplicación.
Dialog: es la ventana que utilizan los cuadros de diálogo.
Window: es una ventana sin marco ni barra de título. Utlizada para
las ventanas de presentación.
Métodos:
void setVisible (boolean visible)
void pack()
void setSize (int width, int height)
void setTitle (String title)
void setMenuBar (MenuBar mb)
void setResizable (boolean resizable)
void setState (int state)
David Contreras Bárcena
194
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.1 Contenedores – Cuadros de Diálogo
Son ventanas transitorias para mostrar advertencias, errores,
información especifica, etc.
No tienen barra de menús.
Pueden ser de dos tipos:
JDialog: proporciona un dialogo general.
JFileChooser: dialogo especifico para escoger archivos para
guardar o abrir.
JOptionPane: manera fácil y rápida de generar diálogo
personalizados.
David Contreras Bárcena
195
9.1 Contenedores - Container
Métodos importantes definidos en la clase Container:
Component add(Component comp)
void setLayout(LayoutManager mgr)
void remove(Component comp)
void remove(int index)
void removeAll()
void doLayout()
David Contreras Bárcena
196
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.2 LayoutManager
FlowLayout (java.awt)
Permite una distribución lineal de los componentes.
Crea nuevas líneas cuando así lo exige el ancho del container.
Components
Container
this.setLayout (new FlowLayout());
this.add(new Button(“Aceptar”));
this.add(...);
this.add(...);
this.add(...);
this.add(...);
David Contreras Bárcena
197
9.2 LayoutManager
GridLayout (java.awt)
Permite una distribución en regilla o tabla.
Los componentes se situan en las celdas de forma secuencial de
arriba abajo y de izquierda a derecha.
No se puede direccionar la posición de los componentes sobre las
celdas.
El tamaño de las celdas es idéntico.
Container
Components
this.setLayout(new GridLayout(2,3));
this.add(new Button(“Aceptar”));
this.add(...);
this.add(...);
this.add(...);
David Contreras Bárcena
198
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.2 LayoutManager
BorderLayout (java.awt)
Proporciona cinco áreas para situar componentes.
La ausencia de una de ellas produce la extensión horizontal o
vertical de las contiguas.
norte
Container
oeste
centro
este
Components
sur
this.setLayout(new BorderLayout());
this.add(new Button(“Aceptar”), BorderLayout.NORTH);
this.add(..., BorderLayout.EAST);
this.add(..., BorderLayout.WEST);
this.add(..., BorderLayout.SOUTH);
this.add(..., BorderLayout.CENTER);
David Contreras Bárcena
199
9.2 LayoutManager
CardLayout (java.awt)
Permite alternar el contenido de un container entre varios paneles
creados anteriormente.
El cambio se puede producir en tiempo de ejecución.
Cada panel deberá tener un identificador del tipo String.
this.setLayout(new CardLayout());
Panel panelA = new JPanel ();
panelA.add(....);
Panel panelB = new JPanel ();
panelB.add(....);
this.add(panelA, “A”);
this.add(panelB, “B”);
CardLayout cl = (CardLayout)this.getLayout();
cl.show(c, “B");
David Contreras Bárcena
200
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.2 LayoutManager
BoxLayout (javax.swing)
Permite visualizar los componentes alineados vertical u
horizontalmente.
Container
Components
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
Button boton1 = new Button(“Aceptar");
boton1.setAlignmentX(Component.CENTER_ALIGNMENT);
this.add(boton1);
this.add(...);
this.add(...);
this.add(...);
David Contreras Bárcena
201
9.2 LayoutManager – Paneles
Los gestores de layout sólo permiten agregar un
componente en cada área o zona del mismo.
Si deseo agregar un conjunto de ellos (colocar más de un
botón en la zona sur de un BorderLayout) o agregar
componentes en bloques, se debe utilizar la clase JPanel.
Esta clase hereda de Container por lo que permitirá agregar
componentes como si se tratara de un JFrame.
David Contreras Bárcena
202
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.2 LayoutManager – Estructura de una aplicación GUI
Ejemplo de creación de una ventana:
public class MiFrame extends Frame
{
Button boton;
public static void main(String s[])
{
new MiFrame();
}
public MiFrame()
{
boton = new Button("Aceptar");
this.setLayout(new FlowLayout());
this.add(boton);
this.setSize(250,250);
this.setVisible(true);
}
}
David Contreras Bárcena
203
9.1 Contenedores – Estructura de una aplicación GUI
Ejemplos:
COMPONENTE -> Button
CONTAINER –> Frame
COMPONENTE -> Button
DISTRIBUCION –> FlowLayout
CONTAINER –> Frame
COMPONENTE -> Button
DISTRIBUCION –> FlowLayout
CONTAINER –> Panel en la zona Sur
DISTRIBUCION –> BorderLayout
CONTAINER –> Frame
David Contreras Bárcena
204
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.2 LayoutManager – Estructura de una aplicación GUI
Ejemplos:
public MiFrame()
{
boton = new Button("Aceptar");
this.add(boton);
this.setSize(250,250);
this.setVisible(true);
}
public MiFrame()
{
boton = new JButton("Aceptar");
this.setLayout(new FlowLayout());
this.add(boton);
this.setSize(250,250);
this.setVisible(true);
}
public MiFrame()
{
boton = new JButton("Aceptar");
Panel panel= new Panel(new FlowLayout());
panel.add(boton);
this.setLayout(new BorderLayout());
this.add(panel,BorderLayout.SOUTH);
this.setSize(250,250);
this.setVisible(true);
}
David Contreras Bárcena
205
9.3 Componentes (Component)
Como superclase de todos los componentes java (AWT y
Swing), esta clase generaliza el comportamiento de todos
ellos.
Todos los componentes AWT heredan de Component,
mientras que los desarrollados en Swing lo hacen de
JComponent.
Component
Button
List
Container
Label
JComponent
David Contreras Bárcena
206
David Contreras Bárcena - ETSI
Lenguaje de Programación JAVA –ITL/IINF/ITIG
Lenguaje JAVA
9.3 Componentes (Component)
Métodos importantes definidos en la clase Component:
void setEnabled(boolean b)
void setVisible(boolean b)
void requestFocus()
void setBounds(int x, int y, int width, int height)
void se
Comentarios de: Curso De Java - 9. AWT (Abstract Window Toolkit) (0)
No hay comentarios