PROGRAMACION EN JAVA

ESTRUCTURAS DE DATOS


Componentes Basicos de una Interfaz Grafica con el Usuario


  1. Introduccion
  2. Rotulos
  3. Botones para Pulsar
  4. Campos de Textos
  5. Botones de Opcion
  6. Casillas de Verificacion y botones de Radio
  7. Listas
  8. Paneles
  9. Eventos de Raton
  10. Eventos de Teclado
  11. Administrador de Dise�os

  1. 1.Introduccion

    Java es un lenguaje que posee herramientas para manejar graficos de alta resolucion, por ello nos permite crear aplicaciones visuales, graficos, aplicaciones din�micas, etc. Todas estas herramientas se encuentran en el paquete java.awt tambi�n conocido como juego de herramientas abstractas (Abstract Windowing Toolkit). Este paquete se importa con la siguiente linea de codigo:import java.awt.*; Cuando importamos el paquete java.awt traemos a disposicion del programador un conjunto de componentes graficos, denominados Interfaz Gr�fica con el Usuario (GUI, graphical user interface), dichos componentes estudiaremos a continuaci�n como ser los rotulo, botones, lista, campos de textos y paneles.

  1. 2. Rotulos.

    Un rotulo es un �rea en la que se exhibe una sola linea de texto est�tico (solo de lectura) en una GUI, ademas el usuario no puede modificar este rotulo. Los rotulos se crean con la clase Label.
    Contructores:
  2. public Label() //Crea un rotulo vacio.
  3. public Label(String s) // Crea un rotulo con la cadena s.
  4. public Label(String s, int pos) // Crea un rotulo con la cadena s en la posici�n pos. donde: pos = 0 (LEFT), 1 (CENTER), 2(RIGHT)
  5. Metodos:
  6. setText( String s ) // Asigna a s como cadena del rotulo.
  7. getText() // Devuelve la cadena asignada al rotulo.
  8. setAlignment(int pos) //Asigna una nueva posici�n pos al rotulo.

  9. Para los rotulos la fuente por defecto es "Currier", el color es negro y el tama�o es 10. Por otro lado la clase Label deriva de la clase Component y a su vez esta de Object.
  1. 3. Botones Para Pulsar.

    Un boton es un componente en el que el usuario hace clic para disparar una acci�n espec�fica. Los Botones se crean con la clase Button.

    Contructores:
  2. public Button() //Crea un boton sin rotulo.
  3. public Button(String s) // Crea un boton con el rotulo s.
  4. Metodos:
  5. setLabel( String s ) // Asigna un rotulo s al boton.
  6. getLabel() // Devuelve el rotulo de un boton.

  7. Los botones son manejados por eventos, esto quiere decir, que cuando el usuario hace clic sobre un boton, este se activa e inicia algun proceso. Cada vez que se inicia un nuevo evento por un boton, el evento almacena el objeto en la variable target la cual se utilizar� para posterior verificaci�n, luego tenemos la variable arg, la cual almacena el nombre del objeto que gener� el evento. Por otro lado la clase Button deriva de la clase Component y a su vez esta de Object.
  1. 4. Campos de Texto.

    Un campo de texto es un �rea en la que se reciben entradas (datos) tecleadas por el usuario en una sola linea hasta que se oprima la tecla Enter. Estos datos se pueden utilizar en el programa. Los campos de texto tambien se pueden utilizar para exhibir informaci�n, son creados por la clase TextField.

    Contructores:
  2. public TextField() //Crea un campo texto vacio.
  3. public TextField(int col ) // Crea un campo texto vacio con la cantidad de columna col.
  4. public TextField(String s) // Crea un campo texto con la cadena s.
  5. public TextField(String s, int col) // Crea un campo texto con la cadena s y el tama�o col.
  6. M�todos:
  7. getSelectedText( ) // Devuelve el texto seleccionado del campo texto.
  8. getText() // Devuelve el texto del campo texto.
  9. Selected( int ini, int fin ) // Devuelve el texto desde la posicion ini hasta la posicion fin.
  10. setEditable(boolean b) // Permite o no la introduccion de datos en el campo texto.
  11. isEditable() // Verifica si en el campo texto se puede introducir datos.
  12. setEchoCharacter(Char c) //Especifica al car�cter c como el car�cter de ocultamiento en un password.

  13. Por otro lado la clase TextField deriva de la clase TextComponent y a su vez esta de Component que deriva de Object.
  1. 5. Botones de Opcion.

    Un boton de opcion es un componente que proporciona una lista de elementos entre los cuales el usuario puede escoger. Los Botones de opcion se crean con la clase Choice.

    Contructor:
  2. public Choice() //Crea un boton sin opci�n.

  3. Nota: Cuando se crea un boton de opcion, este se crea sin opciones, ya que se colocar�n con el m�todo addItem.

    M�todos:
  4. countItem() // Devuelve el numero de elementos del boton choice.
  5. getItem(int index) // Devuelve el elemento de la posici�n index del boton choice.
  6. addItem( String s ) // Agrega una opci�n a un boton choice.
  7. getSelectedItem() // Devuelve el elemento seleccionado del boton choice.
  8. getSelectedIndex() // Devuelve el indice del elemento seleccionado del boton choice.

  9. Por otro lado la clase Choice deriva de la clase Component y a su vez esta de Object.
  1. 6. Casillas de Verificacion y Botones de Radio.

    La clase Checkbox (casilla de verificaci�n) sirve para crear botones de casilla de verificaci�n y botones de radio. Estos son botones de estado, es decir, botones que tienen valores de encendido/apagado o verdadero/falso. La clase Checkbox hereda directamente de Component.

    Contructores:
  2. public Checkbox() //Crea una casilla de verificaci�n sin rotulo.
  3. public Checkbox( String s ) //Crea una casilla de verificaci�n con el rotulo s.
  4. M�todos:
  5. getLabel() // Devuelve el rotulo de la casilla de verificaci�n.
  6. setLabel( String s ) // Asigna el rotulo s a la casilla de verificaci�n.
  7. getState() // Devuelve el estado de una casilla de verificacion.
    Botones de Radio.
    Los botones de radio se diferencian de las casillas de verificaci�n porque los primeros solo se admite que uno del grupo est� habilitado, mientras que las casillas admiten mas de uno. Los botones de radio se crean con la clase Checkbox y la clase CheckboxGroup.
    Contructores:
  1. public Checkbox( String x, CheckboxGroup c, boolean e ) //Crea un solo boton de radio con el r�tulo s y el estado e, el boton de radio se agrega al CheckboxGroup c que ya existe.
  2. public CheckboxGroup( ) //Crea un grupo de botones de radio.
  3. M�todos:
  4. getLabel() // Devuelve el rotulo de un boton de radio .
  5. setLabel( String s ) // Asigna el rotulo s a un boton de radio.
  6. getState() // Devuelve el estado de un boton de radio.
  1. 7. Listas.

    Las listas exhiben una serie de elementos de los cuales el usuario puede seleccionar uno o mas. Las listas se crean a partir de la clase List, que hereda directamente de la clase Component.

    Contructores:
  2. public List() // Crea una lista que permite seleccionar un elemento.
  3. public List(int i, boolean ms ) //Crea una lista con i n�mero de elementos visibles y ms de selecci�n multiple.
  4. M�todos:
  5. addItem() // Agrega un item a la lista.
  6. getSelectedItems() // Devuelve los items seleccionados.

    el Ejemplo siguiente crea una lista que muestra cuatro lineas a la vez y no permite seleccion multiple

    Lista seleccion simple

    import java.awt.*;
    import java.applet.Applet;
    
    public class Lista extends Applet {
    
        public void init() {
            List l = new List( 4,false );
    
            l.addItem( "Mercurio" ); 
            l.addItem( "Venus" ); 
            l.addItem( "Tierra" ); 
            l.addItem( "Marte" ); 
            l.addItem( "Jupiter" ); 
            l.addItem( "Saturno" ); 
            l.addItem( "Neptuno" ); 
            l.addItem( "Urano" ); 
            l.addItem( "Pluton" ); 
            add( l );
            }
    
        public boolean action( Event evt,Object obj ) {
            if( evt.target instanceof List )
                System.out.println( "Entrada de la Lista: " + obj );
    
            return true;
            }
        }
    

    1. 8. Paneles.

      Un panel es un contenedor, similar al contenedor applet, en donde se les puede agregar componentes. La clase panel hereda de la calse Container y la clase Applet hereda de Panel. El constructor Panel no recibe argumentos y no est� sobrecargado. Los paneles se crean con la clase Panel. Ademas, todos los componentes que se agregan a un panel, se lo hace con el m�todo add, similar a un applet. Podemos, por ejemplo, crear una barra de herramientas para la zona superior de la ventana de la aplicaci�n o incorporarle una zona de estado en la zona inferior de la ventana para mostrar informaci�n �til al usuario. Para ello vamos a implementar dos Paneles:

      class BarraHerram extends Panel {
          public BarraHerram() {
              setLayout( new FlowLayout() );
              add( new Button( "Abrir" ) );
              add( new Button( "Guardar" ) );
              add( new Button( "Cerrar" ) );
      
              Choice c = new Choice();
              c.addItem( "Times Roman" );
              c.addItem( "Helvetica" );
              c.addItem( "System" ); 
              add( c );
              add( new Button( "Ayuda" ) );
              }
          }
      
      class BarraEstado extends Panel {
          Label texto;
          Label mas_texto;
      
          public BarraEstado() {
              setLayout( new FlowLayout() );
              add( texto = new Label( "Creada la barra de estado" ) );
              add( mas_texto = new Label( "Informaci�n adicional" ) );
              }
      
          public void verEstado( String informacion ) {
              texto.setText( informacion );
              }
          }
      
      Ahora, para dar funcionalidad, debemos crear los objetos correspondientes a la barra de herramientas y a la barra de estado con new; al contrario que en C++, en Java todos los objetos deben ser creados con el operador new:
          add( "North",tb = new ToolBar() );
          add( "South",sb = new StatusBar() );
      
      Tambi�n vamos a incorporar un nuevo evento a nuestro controlador, para que maneje los eventos de tipo ACTION_EVENT que le llegar�n cuando se pulsen los botones de la barra de herramientas o se realice alguna selecci�n, etc.
          case Event.ACTION_EVENT:
              {
              be.verEstado( evt.arg.toString() );
              return true;
              }
      
      Cuando la aplicaci�n reciba este tipo de evento, alterar� el contenido de la barra de estado para mostrar la informaci�n de la selecci�n realizada o el bot�n pulsado.

      Lista seleccion simple

    1. 9. Eventos de Raton(Mouse).

      Ocurre un evento de raton cuando el usuario interact�a con el raton. Todos los metodos de rat�n reciben tres argumentos: un eventos, una coordenada x y un y.

      M�todos:
    2. mouseEnter(Event e, int x , int y) //Maneja un evento cuando se entra al area de un componente con el puntero del raton.
    3. mouseExit(Event e, int x , int y) // Maneja un evento cuando se sale del area de un componente con el puntero del raton.
    4. mouseMove(Event e, int x , int y) // Maneja un evento cuando se mueve el raton.
    5. mouseDown(Event e, int x , int y) // Maneja un evento cuando se oprime el boton del raton.
    6. mouseUp(Event e, int x , int y) // Maneja un evento cuando se suelta el boton del raton.
    7. mouseDrag(Event e, int x , int y) // Maneja un evento cuando se arrastra el boton del raton.
    8. Constantes:
    9. public final static int MOUSE_DOWN; // Representa al evento raton-abajo .
    10. public final static int MOUSE_UP; // Representa al evento raton-arriba .
    11. public final static int MOUSE_MOVE; // Representa al evento raton-mover .
    12. public final static int MOUSE_EXIT; // Representa al evento raton-salir .
    13. public final static int MOUSE_ENTER; // Representa al evento raton-entrar.
    14. public final static int MOUSE_DRAG; // Representa al evento raton-arrastrar.

    1. 10. Eventos de Teclado.

      Ocurre un evento de teclado cuando el usuario interact�a con el teclado. Todos los metodos de teclado reciben dos argumentos: un eventos y una tecla.

      M�todos:
    2. keyDown(Event e, int key) //Maneja un evento cuando se oprime una tecla.
    3. keyUp(Event e, int key) // Maneja un evento cuando se suelta una tecla.
    4. Constantes:
    5. public final static int UP;
    6. public final static int LEFT;
    7. public final static int END;
    8. public final static int PGDN;
    9. public final static int F1 - F12;
    10. public final static int DOWN;
    11. public final static int RIGHT;
    12. public final static int HOME;
    13. public final static int PGUP;

    1. 11. Administrador de Dise�os.

      Las GUI complejas requieren que cada componente se coloque en un lugar exacto. Estas GUI por lo regular consisten en multiples paneles, con los componentes de cada panel dispuestos en un orden espec�fico. Los administradores de dise�o acomondan los componentes en un contenerdor, por ejemplo una applet es un contenedor, a continuaci�n veremos los siguientes administradores de dise�os:

      Administradores de Dise�o FlowLayout.
      Este administrador es el que viene por defecto en Java, ya que lo hemos utilizado en los paneles y applets. FlowLayout es el administrador de dise�o mas b�sico y sus componentes los coloca de izquierda a derecha en el orden en que se agregan al contenedor, cuando llegan al borde derecho los componentes que se agregan continuan en la linea siguiente. Este administrador hereda de la clase Object e implementa la interfaz LayoutManager (administrador de dise�o).
      Constructores:
    2. FlowLayout() // Construye un FlowLayout con alineaci�n al centro.
    3. FlowLayout( int a) // Construye un FlowLayout con alineaci�n indicada en a.
    4. FlowLayout(int a, int h, int v ) // Construye un FlowLayout con alineaci�nindicada en a, ademas con un espacio horizontal h entre componentes y un espacio vertical v entre componentes.
    5. Constantes:
    6. public final static int CENTER;
    7. public final static int LEFT;
    8. public final static int RIGHT;
    9. En la alineaci�n se debe especificar el modo, con alguna de las constantes. Normalmente la alineacion por defecto es CENTER (centrado).
      Administradores de Dise�o BorderLayout.
      El administrador de dise�o BorderLayout ( dise�o de border ) acomoda a los componentes en cinco areas : North (norte), South (sur), East (este), West (oeste) y Center (centro). Este administrador hereda de la clase Object e implementa la interfaz LayoutManager (administrador de dise�o).
      Constructores:
    10. BorderLayout() // Construye un BorderLayout.
    11. BorderLayout( int s) // Construye un BorderLayout separando una distancia s entre areas.

    12. Adiministrador de Dise�o GridLayout.
      El administrador de dise�o GridLayout ( dise�o de border ) divide el contenedor en una ret�cula que permite colocar lo componentes en filas y columnas. Se da el mismo tama�o a todos los componentes, ademas, los componentes ase agregan comenzando en la celda superior izquierza de la reticula y avanzando de izquierda a derecha hasta que se llena la fila. Este administrador hereda de la clase Object e implementa la interfaz LayoutManager (administrador de dise�o).
      Constructores:
    13. GridLayout(int f, int c) // Construye un GridLayout con f filas y c columnas.
    14. GridLayout(int f, int c, int h, int v) // Construye un GridLayout con f filas y c columnas, ademas separando una distancia en pixeles h horizontal y v vertical entre componentes.

    15. Despues de definir el administrador a utilizar, se debe debe habilitar el administrador con el m�todo setLayout( administrador ) de la clase Container.Todos los componentes que se deseen agregar a cada administrador se lo realiza con add(administrador, componente), donde el primer argumento es el administrador y el segundo es el componente a agregarse.




    [Anterior] [Siguiente] [Volver]
    1

    Hosted by www.Geocities.ws