Escuela Politécnica Superior de Elche Ingeniería Industrial SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 4: Diseño utilizando AWT. de una interface en Java Objetivos • • • Implementar una aplicación para Windows en Java utilizando la biblioteca de clases AWT (Abstract Windows Toolkit). Conocer el modelo de eventos de Java usado en las aplicaciones para Windows. Utilizar algunos componentes básicos y comprender el concepto de Layout Manager. Descripción Se debe crear una aplicación en Java que tenga la siguiente apariencia: La aplicación se compone de una única ventana en la que se muestran los siguientes componentes: - Una barra de desplazamiento horizontal (Scrollbar) o El valor de la barra variará desde 0 hasta 255 o Inicialmente su valor será 0 - Una lista desplegable (Choice) o Contendrá 3 ítems: “Primera eleccion”, “Segunda eleccion” y “Tercera eleccion” o Inicialmente aparecerá seleccionado el ítem “Tercera eleccion” Página 1 de 4 Escuela Politécnica Superior de Elche Ingeniería Industrial - Una caja de texto editable (TextField) o Inicialmente contendrá el texto “Texto inicial” - Un botón (Button) o Su etiqueta será “Pulsame” - Una caja de texto no editable (TextField) o Inicialmente contendrá el texto “Ningun evento” El funcionamiento de la aplicación será el que se describe seguidamente: - Si se modifica el valor de la barra de desplazamiento, dicho valor debe mostrarse en la caja de texto no editable. Cuando el usuario seleccione un ítem de la lista desplegable, éste debe aparecer en la caja de texto no editable. Si el usuario pulsa Intro en la caja de texto editable, el texto que contenga debe mostrarse en la caja de texto no editable Por último, cada vez que sea pulsado el botón, debe aparecer en la caja de texto no editable la etiqueta de dicho botón Detalles de implementación Debe implementarse una clase denominada InterfazUsuario en cuyo constructor se cree la ventana mostrada anteriormente. Para ello se recomienda seguir los siguientes pasos: 1) Crear los objetos correspondientes a los componentes que se muestran en la ventana. Por ejemplo, para crear la lista desplegable se utilizaría el siguiente código: Choice miChoice = new miChoice.add("Primera miChoice.add("Segunda miChoice.add("Tercera Choice(); eleccion"); eleccion"); eleccion"); 2) Crear la ventana en la que se incluirán los componentes. Utilizar el Layout Manager BorderLayout para distribuir los componentes en la ventana. Estos dos pasos se realizarían como se muestra a continuación: Frame miFrame = new Frame("Ventana en Java"); miFrame.setLayout(new BorderLayout(5,15)); Página 2 de 4 Escuela Politécnica Superior de Elche Ingeniería Industrial 3) Añadir los componentes a la ventana en las posiciones correctas. Por ejemplo, para añadir la lista desplegable a la ventana: miFrame.add(miChoice,"West"); 4) Dar un tamaño a la ventana (utilizando setSize()) y mostrarla (mediante setVisible()). 5) Registrar los receptores de los eventos que se puedan producir. Es decir, hay que indicar los objetos que se harán cargo de los eventos que se produzcan sobre los componentes de la interface. Los eventos que es necesario gestionar son los siguientes: - ItemEvent: Se produce al seleccionar un ítem de la lista desplegable. - ActionEvent: Ocurre tanto al pinchar sobre el botón, como al pulsar Intro en la caja de texto. - AdjustmentEvent: Se produce al cambiar el valor de la barra de progreso. - WindowEvent: Sólo será necesario controlar cuando se cierre la ventana, ya que en tal caso hay que finalizar la aplicación. Por ejemplo para registrar el objeto que se hará cargo del evento ItemEvent: miChoice.addItemListener(new MiItemListener(miChoice,textoEventos)); donde MiItemListener será la clase que implementará la interface ItemListener y se hará cargo del evento ItemEvent; textoEventos representa la caja de texto no editable. Una vez implementada la clase InterfazUsuario, deben crearse las clases encargadas de gestionar los eventos. Por ejemplo, el código de la clase MiItemListener, encargada de recibir los eventos que se produzcan al actuar sobre la lista desplegable, sería el siguiente: class MiItemListener implements ItemListener { Choice eleccion; TextField textoEvento; MiItemListener(Choice choice, TextField texto) { eleccion = choice; textoEvento = texto; } public void itemStateChanged(ItemEvent evt) { textoEvento.setText(eleccion.getSelectedItem()); } } Página 3 de 4 Escuela Politécnica Superior de Elche Ingeniería Industrial El constructor de la clase recibe como parámetros la lista desplegable y la caja de texto no editable en la que se mostrará el ítem seleccionado. Por último será necesario implementar una clase que contendrá el main() en el que se creará la interface. Por ejemplo: public class Practica4 { public static void main(String arg[]) { InterfazUsuario ventana = new InterfazUsuario(); } } Página 4 de 4