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

Entorno grafico en Java

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