Entorno gráfico en Java

36,144 views

Published on

Introducción al paquete java.awt (Abstract Window Toolkit). Se presentan las clases y métodos de uso mas común. Se introducen los layouts

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
36,144
On SlideShare
0
From Embeds
0
Number of Embeds
145
Actions
Shares
0
Downloads
533
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Entorno gráfico en Java

  1. 1. Abstract Window Toolkit (AWT)
  2. 2. La clase Component <ul><li>Todos los componentes que puedan visualizarse en pantalla son subclases de la clase Component. </li></ul>
  3. 3. Jerarquía de la clase Component <ul><li>java.lang.Object </li></ul><ul><li>java.awt.Component </li></ul><ul><li>java.awt.TextComponent </li></ul><ul><li>java.awt.TextField </li></ul><ul><li>java.awt.TextArea </li></ul><ul><li>java.awt.Canvas </li></ul><ul><li>java.awt.Choice </li></ul><ul><li>java.awt.Checkbox </li></ul><ul><li>java.awt.Container </li></ul><ul><li>java.awt.Label </li></ul><ul><li>java.awt.List </li></ul><ul><li>java.awt.Scrollbar </li></ul>
  4. 4. Contenedores <ul><li>Nos permite insertar componentes. </li></ul><ul><li>La clase awt.Container es la que nos permite crear los contenedores. </li></ul><ul><ul><li>class java.awt.Container </li></ul></ul><ul><ul><ul><li>class java.awt.Panel </li></ul></ul></ul><ul><ul><ul><ul><li>class java.applet.Applet </li></ul></ul></ul></ul><ul><ul><ul><li>class java.awt.ScrollPane </li></ul></ul></ul><ul><ul><ul><li>class java awt.Window </li></ul></ul></ul><ul><ul><ul><ul><li>class java.awt.Dialog </li></ul></ul></ul></ul><ul><ul><ul><ul><li>class java.awt.Frame </li></ul></ul></ul></ul>
  5. 6. Labels (Etiquetas) <ul><li>Son usadas para displayar información que no puede ser modificada. </li></ul><ul><li>Constructores </li></ul><ul><ul><li>Label ( ) </li></ul></ul><ul><ul><li>Label (String s) </li></ul></ul><ul><ul><li>Label (String s, int alignment) </li></ul></ul><ul><li>Métodos </li></ul><ul><ul><li>String getText( ) </li></ul></ul><ul><ul><li>void setText (String s) </li></ul></ul><ul><ul><li>void setAlignment (int alignment) </li></ul></ul><ul><ul><ul><li>Label.LEFT, Label.CENTER, Label.RIGHT </li></ul></ul></ul><ul><li>Ver: MyLabel.html y MyLabel.java </li></ul>
  6. 7. Push Buttons (Botones) <ul><li>Constructores: </li></ul><ul><ul><li>Button() </li></ul></ul><ul><ul><li>Button(String label) </li></ul></ul><ul><li>Métodos: </li></ul><ul><ul><li>void setLabel(String label): Setea la etiqueta del botón con el nombre especificado. </li></ul></ul><ul><ul><li>String getLabel(): Obtiene la etiqueta del botón. </li></ul></ul><ul><ul><li>void addActionListener(ActionListener l): Agrega un listener para detectar los eventos que se producen con un botón. </li></ul></ul><ul><li>Ver Button1.java y Button1.html </li></ul>
  7. 8. Choice <ul><li>Este componente puede presentar un usuario con una serie de alternativas de las cuales solo una selección puede hacerse. </li></ul><ul><li>Constructor: </li></ul><ul><ul><li>Choice(): Crea una nueva lista de selección. </li></ul></ul><ul><li>Métodos: </li></ul><ul><ul><li>void add (String item): Agrega un item a la lista. </li></ul></ul><ul><ul><li>String getItem(int index): Retorna el string correspondiente al índice. </li></ul></ul><ul><ul><li>void addItemListener(ItemListener l): Agrega un listener para detectar los eventos que se producen componente Choice. </li></ul></ul><ul><li>Ver ChoiceApplet.java y ChoiceApplet.html </li></ul>
  8. 9. Algunos métodos de Choice <ul><li>int getItemCount() : Retorna el número de items en el Choice. </li></ul><ul><li>String getItem(int index): Obtiene la representación String del correspondiente índice (Los índices comienzan en cero). </li></ul><ul><li>int getSelectedIndex(): Retorna el índice del item seleccionado actualmente. </li></ul><ul><li>String getSelectedItem(): Representación String del item seleccionado. </li></ul>
  9. 10. List <ul><li>Permiten escoger entre una o más opciones. </li></ul><ul><li>Constructores: </li></ul><ul><ul><li>List(): Crea una nueva lista </li></ul></ul><ul><ul><li>List(int rows): Crea lista con un número específico de líneas. </li></ul></ul><ul><ul><li>List(int rows, boolean multipleMode): Crea una nueva lista con cierto numero de filas y especifica si permite selección múltiple. </li></ul></ul><ul><li>Métodos: </li></ul><ul><ul><li>void add(String item): agrega un item al final de la lista. </li></ul></ul><ul><ul><li>void add(String item, int index): agrega un item en cierto índice. </li></ul></ul><ul><li>Ver ListApplet.java y ListApplet.html </li></ul>
  10. 11. Algunos métodos de List <ul><li>int getItemCount(): Retorna el número de items en el List.           </li></ul><ul><li>void removeAll(): Remueve todos los items del List. </li></ul><ul><li>int getSelectedIndex(): Retorna el item seleccionado (-1 si ningún item es seleccionado). </li></ul><ul><li>int[] getSelectedIndexes(): Arreglo de items seleccionados. Si no hay items seleccionados, arreglo de longitud cero. </li></ul><ul><li>String getSelectedItem(): Item seleccionado o null. </li></ul><ul><li>  String[]getSelectedItems(): Retorna arreglo de items seleccionados. </li></ul>
  11. 12. TextField <ul><li>Cuadro de texto de una sola línea. </li></ul><ul><li>Constructores: </li></ul><ul><ul><li>TextField() </li></ul></ul><ul><ul><li>TextField(int columns): Construye un campo de texto con un número específico de columnas. </li></ul></ul><ul><ul><li>TextField(String s): Construye un campo de texto que displaya s. </li></ul></ul><ul><li>Métodos: </li></ul><ul><ul><li>void setEchoChar(char c): Setea el caracter a ser displayado a medida que el usuario tipea. </li></ul></ul><ul><ul><li>void setEditable(boolean b) //true==editable Especifica si un TextField es editable. </li></ul></ul><ul><li>Ver TextFieldApplet.java </li></ul>
  12. 13. TextArea <ul><li>Constructores: </li></ul><ul><ul><li>TextArea() </li></ul></ul><ul><ul><li>TextArea(String text): Construye una nueva área de texto con un texto específico </li></ul></ul><ul><ul><li>TextArea(int rows, int columns): Construye un area de texto con un número específico de filas y columnas. </li></ul></ul><ul><li>Métodos: </li></ul><ul><ul><li>void append(String str): agrega un texto dado a un text area. </li></ul></ul><ul><ul><li>void setColumns(int columns): Setea el número de columnas para esta área de texto. </li></ul></ul><ul><ul><li>void setRows(int rows): Setea el número de filas para el área de texto. </li></ul></ul><ul><li>Ver TextAreaApplet.java </li></ul>
  13. 14. Los administradores de diseño Layout managers
  14. 15. Layout Managers (Administradores de Diseño) <ul><li>Estos administradores, determinan el tamaño y posición del componente en el contenedor. </li></ul><ul><li>Cuando el contenedor (container) necesita posicionar un componente, invoca al layout manager para que este lo haga. </li></ul>
  15. 16. Ventajas <ul><li>Permiten representar de una manera ordenada los componentes en la pantalla. </li></ul><ul><li>Cuando usamos los administradores no nos tenemos que preocupar, por ejemplo, de que se redimensione una ventana, ya que el propio administrador se encargará de reorganizar los componentes en el Container. </li></ul>
  16. 17. Tipos de administradores (Layout Managers) <ul><li>FlowLayout </li></ul><ul><li>BorderLayout </li></ul><ul><li>GridLayout </li></ul><ul><li>CardLayout </li></ul><ul><li>GridBagLayout </li></ul>
  17. 18. Cómo definirlo? <ul><li>Para utilizar un layout manager específico, se usa el método de la clase Container: </li></ul><ul><ul><li>setLayout(AdministradorDeDiseño) </li></ul></ul><ul><li>Por ejemplo: </li></ul><ul><ul><li>setLayout(new BorderLayout()); </li></ul></ul><ul><li>Si no se especifica un layout manager se usa el default. </li></ul><ul><ul><li>Para la clase Panel (superclase de la clase Applet) el layout manager por default es: FlowLayout. </li></ul></ul><ul><ul><li>Para la clase Frame, el layout manager por default es: BorderLayout. </li></ul></ul>
  18. 19. FlowLayout <ul><li>Es el administrador de diseño por defecto de la clase Panel, por ende de los applets. </li></ul><ul><li>Coloca los componentes de izquierda a derecha en una fila, según se van insertando en el contenedor, y cuando llega al borde del contenedor los sigue insertando en la siguiente fila. </li></ul><ul><li>Este administrador posee 3 constructores: </li></ul><ul><ul><li>FlowLayout( ) </li></ul></ul><ul><ul><li>FlowLayout(int alineamiento) </li></ul></ul><ul><ul><ul><li>El alineamiento puede tomar los siguientes valores: FlowLayout.LEFT, FlowLayout.RIGHT, o FlowLayout.CENTER </li></ul></ul></ul><ul><ul><li>FlowLayout(int alineamiento, int dist_h, int dist_v). </li></ul></ul>
  19. 20. Métodos asociados a FlowLayout <ul><li>El alineamiento por defecto es centrado. </li></ul><ul><li>Métodos Descripción </li></ul><ul><li>getAlignment() Devuelve el tipo de alineación establecido. </li></ul><ul><li>setAlignment(int) Establece la alineación de los componentes. </li></ul><ul><li>getHgap() Devuelve la distancia horizontal que existe entre un </li></ul><ul><li>componente y otro. </li></ul><ul><li>getVgap() Devuelve la distancia vertical que existe entre un </li></ul><ul><li>componente y otro. </li></ul><ul><li>setHgap(int) Establece la distancia horizontal entre componentes. </li></ul><ul><li>setVgap(int) Establece la distancia vertical entre componentes. </li></ul>
  20. 21. Ejemplo de FlowLayout Ver también: EjemploFrame.java
  21. 22. BorderLayout <ul><li>Administrador por defecto para los marcos (Frame) y cuadros de diálogo. </li></ul><ul><li>Este administrador posee los siguientes constructores: </li></ul><ul><ul><li>BorderLayout() </li></ul></ul><ul><ul><li>BorderLayout(int distancia_h, int distancia_v) </li></ul></ul><ul><li>Ver Botones.java </li></ul>
  22. 23. GridLayout <ul><li>Este administrador divide el contenedor en una cuadrícula, cada una de estas albergará un componente. </li></ul><ul><li>Todas las casillas son del mismo tamaño. </li></ul><ul><li>Los componentes se agregan de izquierda a derecha y de arriba hacia abajo. </li></ul><ul><li>Tiene 3 constructores: </li></ul><ul><ul><li>GridLayout() </li></ul></ul><ul><ul><li>GridLayout(int filas, int columnas) </li></ul></ul><ul><ul><li>GridLayout(int filas, int columnas, int dist_h, int dist_v) </li></ul></ul><ul><li>Ver AdminGrid.java </li></ul>
  23. 24. Ejercicio en Clase
  24. 25. Tareas <ul><li>Lección cap 9 para el próximo viernes. </li></ul><ul><li>Deber: Ejercicios del capítulo 9 para el próximo viernes. </li></ul>
  25. 26. CardLayout <ul><li>Este administrador es el único que permite cambiar los componentes en pantalla en tiempo de ejecución. </li></ul><ul><li>Su potencia radica en el uso de paneles. </li></ul><ul><li>Podremos en un instante determinado visualizar uno de los paneles dejando los otros paneles sin visualizar. </li></ul>
  26. 27. Pasos para usar un CardLayout <ul><li>Crear un panel que tenga por administrador a CardLayout. </li></ul><ul><li>Crear los diferentes paneles que contendrá nuestra aplicación, insertando, claro está, los componentes necesarios en cada panel. </li></ul><ul><li>Añadir mediante el método add() de la clase Container los paneles creados, al panel cuyo administrador es CardLayout. </li></ul><ul><li>Usar los métodos next(), previous(), first() o show() pertenecientes a la clase CardLayout para poder visualizar el panel correspondiente. </li></ul>
  27. 28. <ul><li>Constructores CardLayout </li></ul><ul><ul><li>CardLayout() </li></ul></ul><ul><ul><li>CardLayout(int distancia_h, int distancia_v) </li></ul></ul><ul><li>Métodos de CardLayout </li></ul><ul><ul><li>first(Container padre) Visualiza el primer contenedor. </li></ul></ul><ul><ul><li>last(Container padre) Visualiza el último contenedor. </li></ul></ul><ul><ul><li>next(Container padre) Visualiza el siguiente contenedor. </li></ul></ul><ul><ul><li>show(Container padre, String nombre) Visualiza un contenedor específico. </li></ul></ul>
  28. 29. GridBagLayout <ul><li>Similar al GridLayout, con las diferencias siguientes: </li></ul><ul><ul><li>Los componentes, pueden tener diferente tamaño. </li></ul></ul><ul><ul><li>Los componentes pueden ocupar más de una celda. </li></ul></ul><ul><ul><li>Los componentes se pueden agregar en cualquier orden. </li></ul></ul>
  29. 30. Clase GridBagConstraints <ul><li>Esta clase especifica las restricciones de los componentes que serán colocados en un GridBagLayout. </li></ul><ul><li>Las propiedades son: </li></ul><ul><ul><li>anchor: Posición del componente dentro de la celda: NORTH, NORTHWEST, CENTER, etc. </li></ul></ul><ul><ul><li>insets (int top, int left, int bottom, int right) : es el margen que tienen los componentes dentro de la celda. </li></ul></ul><ul><ul><li>gridx: Columna en la cual se pone al componente. </li></ul></ul><ul><ul><li>gridy: Fila en la cual se pone al componente. </li></ul></ul><ul><ul><li>gridwidth: Número de columnas que un componente ocupa (REMAINDER: todas las que restan). </li></ul></ul><ul><ul><li>gridheight: Número de filas que un componente ocupa. (REMAINDER). (Ver GridBagDemo.java) </li></ul></ul>

×