Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
public class HolaMundoSwing { public static void main(String[] args) { JFrame frame = new JFrame("HolaMundoSwing"); final JLabel label = new JLabel("Hola Mundo");
frame.getContentPane().add(label);
//frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.pack(); frame.setVisible(true); }
} import javax.swing.JOptionPane; public class Addition { public static void main( String args[] ) { String firstNumber, secondNumber; int number1, number2, sum; // read in first number from user as a string firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); // read in second number from user as a string
secondNumber = JOptionPane.showInputDialog( "Enter second integer" ); // convert numbers from type String to type int number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); sum = number1 + number2; // display the results JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); System.exit( 0 ); // terminate the program } }
Manejo de eventos
Cuando se realiza una interaccin con el programa, se enva un evento,Es fundamental su comprensin para programar con GUI La fuente del evento o Evento (event source) El componente GUI con el cual interacta el usuario. La informacin sobre un evento esta encapsulada Se deriva de java.util.EventObject hacia java.awt.AWTEvent Por. Ejem. Teclas, movimiento click de mouse, manejo de una ventana. Diferentes fuentes de eventos producen diferentes tipos de eventos Un botn enva ActionEvent Una ventana enva WindowEvent
El objeto evento (event object) Encapsula informacin acerca del evento que ocurri. Incluye informacin que el que escucha el evento necesita para manejar el evento. Cuando ocurre un evento, lo enva a escuchadores registrados
El que escucha el evento (event listener) Implementa una interfase especial Determina la reaccin el un evento
Librerias Java para disear GUI AWT " Primera librera grca " Se usan llamadas a los sistemas de ventanas nativos (componentes pesados) " Intento de un API comn mediante el mnimo comn denominador de todos los sistemas de ventanas " Problemas: componentes escasos, aplicaciones dependientes del entorno de ventanas. Swing " Evolucin tras AWT " Se usa cdigo propio de Java que dibuja en una ventana proporcionada por el sistema de ventanas (componentes ligeros). " Mayor cantidad de componentes y uniformidad de las aplicaciones grcas en todos los entornos de ventanas Pasos para definir una GUI con Swing 1. Crear los componentes 2. Denir las propiedades de los componentes 3. Crear los contenedores que almacenan los componentes 4. Especicar los LayoutManagers para disponer los componentes en los contenedores 5. Aadir los componentes en los contenedores 6. Denir la escucha de eventos 7. Mostrar la GUI al usuario
Oyentes de eventos Los eventos los generan los componentes y los procesan objetos que implementan la interfaz EventListener. Pasos: "1. Crear los componentes "2. Crear los oyentes de los eventos que queremos tratar "3. Asociar los oyentes a los componentes "4. Cuando un evento se genera en un componente, la aplicacin llama al mtodo correspondiente del oyente asociado a ese componente Objetos de la clase Event Cuando se llama a una funcin que procesa un evento, denida en una clase que implementa el interfaz EventListener, se pasa como parmetro informacin sobre el evento producido public void actionPerformed(ActionEvent event) { // cdigo para tratar el evento } Tipos de oyentes Para cada evento con nombre xxxEvent, se dene una interfaz llamada xxxListener en la que se denen los mtodos que van a manejarse relacionados con ese evento ActionEvent -> ActionListener MouseEvent -> MouseListener
Dnde implementar la interfaz? Dado que los oyentes deben ser objetos de una clase que implemente la interfaz, surge la cuestin de qu clase debe implementar la interfaz. Tres opciones: Crear una clase que dena el componente e implemente ,el oyente, Crear una clase aparte,Crear una clase interna. Clase que define el componente y la interfaz class MiClase implements ActionListener{ public MiClase() { Button btn = new Button("Boton"); btn.addActionListener(this); } public void actionPerformed(ActionEvent e) { // Aqui va el codigo de la accion!!! } } Clase aparte class MiClase{ public MiClase() { Button btn = new Button("Boton"); btn.addActionListener(new MiOyente()); } } class MiOyente implements ActionListener{ public void actionPerformed(ActionEvent e) {
} }
Clase interna Button btn = new Button("Boton"); btn.addActionListener( new ActionListener() { public void actionPerformed(ActionEven e) { // Aqui va el codigo de la accion } }