Desarrollo de aplicaciones gráficas M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Febrero de 2006 Aplicaciones gráficas en Java Estas aplicaciones pueden dividirse en dos tipos: Aplicaciones de escritorio Applets Para construirlas, se utilizan, principalmente, las clases de los paquetes: java.awt javax.swing java.applet 1 El paquete java.awt Este paquete contiene las clases principales para el desarrollo de aplicaciones gráficas en Java y para dibujar elementos gráficos La clase principal de la cual se derivan los elementos utilizados para estas aplicaciones es java.awt.Component La clase Component Un componente es un objeto gráfico que puede desplegarse en la pantalla y con el cual el usuario puede interactuar Sus subclases directas son: Button Canvas CheckBox Choice Label List ScrollBar TextComponent Container 2 La clase Container Un contenedor es un tipo especial de componente al cual se le pueden agregar otros componentes Algunos de los contenedores más utilizados son los derivados de las clases Panel y Window Las clases del paquete javax.swing son derivadas de Container La clase Graphics Esta clase es la base para todos los contextos gráficos que permiten a una aplicación dibujar sobre componentes en dispositivos diversos, e incluso que se encuentren fuera de pantalla 3 Applets Un applet es una clase que extiende a la clase java.awt.Applet Son aplicaciones que se insertan en una página Web y se ejecutan por un navegador de Internet Ciclo de vida de un Applet init( ) start( ) Estos métodos son llamados, en orden, al iniciar la ejecución del Applet paint( ) stop( ) destroy( ) Estos métodos son llamados al finalizar el Applet 4 Descripción de los métodos de un Applet public void init() Es el primer método que se llama al iniciar la ejecución de un Applet Normalmente se utiliza para la inicialización de variables Sólo es llamado una vez durante el ciclo de vida de un Applet Descripción de los métodos de un Applet public void start() Este método es llamado después de init() al iniciar la ejecución de un Applet A este método se le llama cada vez que el usuario regresa a la página que contiene el Applet Permite que inicie la ejecución de un Applet que se detuvo al ejecutarse el método stop() 5 Descripción de los métodos de un Applet public void paint(Graphics g) Este método se llama después de start() al iniciar la ejecución del Applet El método paint() es llamado automáticamente cada vez que se necesite redibujar la interfaz gráfica del Applet Se le puede llamar directamente a través del método repaint(); Descripción de los métodos de un Applet public void stop() Se le llama cuando el navegador sale del documento HTML que contiene al Applet Se utiliza para suspender tareas que no deban ejecutarse cuando el Applet no es visible, mismas que pueden iniciarse nuevamente al llamar al método start() 6 Descripción de los métodos de un Applet public void destroy() Se le llama cuando se determina que el Applet necesita ser borrado completamente de la memoria Se utiliza para liberar recursos utilizados por el Applet Antes de este método, siempre se llamará al método stop() La etiqueta <applet> Para cargar un Applet en una página HTML es necesario utilizar la etiqueta <applet>, de la siguiente forma: <applet code=“MiApplet” width=300 height=200> </applet> 7 Otras clases Color Font FontMetrics Toolkit MouseInfo Image Dimension Point Cursor DisplayMode Event MediaTracker Polygon TextureShape Clases de Layout Eventos Para capturar eventos de los componentes gráficos, una clase requiere implementar las interfaces adecuadas para cada tipo de evento ActionListener: Eventos generales como presionar un botón o dar enter en un campo de texto Eventos del ratón: MouseListener MouseMotionListener MouseWheelListener 8 Eventos La captura de eventos se realiza de una de las siguientes formas: Implementación de interfaces - Listener Utilizar las clases Adapter Clases internas (Por medio de las clases Adapter) Layout Es la forma en la que se distribuirán los componentes en una interfaz gráfica: FlowLayout BorderLayout CardLayout GridBagLayout GridLayout El layout se asigna a los contenedores 9 Aplicaciones de Consola Las aplicaciones gráficas de consola requieren extender a la clase java.awt.Frame El manejo de estas aplicaciones es similar a los Applets, pero en este caso son independientes de un navegador y se ejecutan en su propia ventana En estas aplicaciones el primer método que se ejecuta es main() El paquete javax.swing Swing es un conjunto de clases que proporcionan componentes más potentes y flexibles que los de AWT Estos componentes están escritos completamente en Java, a diferencia de los AWT, que dependen de la plataforma 10 Ventanas de diálogo A partir de la clase Jdialog, se pueden crear ventanas que permitan mostrar mensajes o capturar información del usuario Algunas clases útiles son: JOptionPane JColorChooser JFileChooser Uso de Menús Java proporciona las siguientes clases para trabajar con menús: JMenuBar JMenu JMenuItem JRadioButtonMenuItem JCheckBoxMenuItem JPopupMenu 11