Aplicaciones GUI en Java

Slides:



Advertisements
Presentaciones similares
Manejo de Eventos Visita FIEC.
Advertisements

Fernando Alonso Blázquez Graphic User Interfaces 25 de Marzo de 2004.
Curso de Java Capitulo 7: Continuación Poo Profesor:
VISUAL. 1.Hacer nuevo proyecto 2.Crear un nuevo paquete 3.Hacer una clase visual 1.Dar el nombre 2.Seleccionar el estilo AWT 3.Seleccionar Frame.
Programación Interactiva Eventos y Swing
Lenguaje de programación Java
Programación “Conducida por eventos” Event-driven programming
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Abstract Window Toolkit (AWT) y Java Swing
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) V.- INTERFASES GRAFICAS
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 12 - Introducción.
En esta fase del editor de texto mostraremos los avances que ha obtenido el equipo a lo largo de estas semanas. Así como las clases, eventos, botones,
Java Parte II Taller de Sistemas de Programas Enero-Marzo 99 Prof. : Sandra Zabala, Marilenis Olivera Ivette C. Martínez, Pedro García, Alejandra Blanco.
M.C. Juan Carlos Olivares Rojas
TEMA 1. Diseño de interfaces gráficas
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO330.
Herencia e Interfaces.
Figure: Lenguajes. Generaciones de lenguajes de programación.
MouseListener y MouseMotionListener SUSANA CAROLINA VILLA TORRES.
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Igor Santos Grueiro. Ahora tenemos datos y datos …
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Introducción a Java 2D y LG3D
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
Programación Interactiva Eventos y Swing Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Agustín J. González ELO329/ELO330
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
Programación Orientada a Objetos
ANDROID ING.IVAN PETRLIK AZABACHE. COMPONENTES BASICOS DE TIPO VIEW FORM WIDGETS.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Manejo de Eventos. Lo básico para manejo de eventos Cuando se realiza una interacción con el programa, se envía un evento. Es fundamental su comprensión.
Interfaces Graficas Profesor: Rodrigo Cruzat. Contenedores La ventana misma, que contiene botones, texto, etc… y donde se realizará la interacción JFrame.
AWT y Swing Existen dos conjuntos basicos de componentes. Para crear aplicaciones graficas o GUI AWT abstract Window Toolkit Swing.
Programación basada en eventos “Event-Based Programming”: Conceptos
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
“Programando con J2ME” Rogelio Ferreira Escutia. 2 MIDlet mínimo.
Programación de Interfaces Gráficas en Java
Programación Gráfica Agustín J. González ELO329/ELO330.
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Programación de Interfaces Gráficas en Java
Ing. Esp. Ricardo Cújar. SWING  Paquete de Java que permite el desarrollo de interfaces gráficas de usuario.  Api Swing, es sumamente flexible y se.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 JAVA APPLETS Silvia Larrayoz Leire Urriza.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 AWT ABSTRAC WINDOW TOOLKIT.
Manejo de Eventos Visita FIEC FIEC. Eventos En evento es una acción iniciada por el usuario. Ejemplo de eventos son: presionar un botón, cambiar un texto,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Entorno Gráfico Desacoplar Eventos. Jframe setResizable setTitle setSize setVisible Jpanel Layout GridBack SetBounds Jlabel Jbuttom Jchechbox Jradio.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Exception Object Throwable Error Exception Runtime Exception.
Interfaces Gráficas de Usuario
Interfaces Gráficas de Usuario
Transcripción de la presentación:

Aplicaciones GUI en Java

Aplicaciones GUI en Java Tecnologías GUI de Java AWT (Abstract Window Toolkit) JFC (Java Foundation Classes). Mejor conocida como Swing SWT (Standard Widget Toolkit)

Programación JFC (Swing) Frames JFrame JDialog Panels Layouts Boxes Componentes (widgets) JComponent JLabel JTextField JButton JList

Aplicaciones GUI en Java Para crear una aplicación con Swing se debe: Crear un JFrame Llenarlo de components según los requerimientos de la aplicación Mostrar el JFrame en pantalla invocando el método setVisible(true) Ejemplo public static void main(String[] args) { JFrame frame = new JFrame(); frame.setVisible(true); }

Aplicaciones GUI en Java Se acostumbra (pero no es obligatorio) declarar una subclase de JFrame y en el constructor llenar el Frame de componentes public class FrameAlumnos extends JFrame { JTextField nombre; JTextField fechaNac; FrameAlumnos() { JPanel contentPane = (JPanel) getContentPane(); nombre = new JTextField(); contentPane.add(nombre); FechaNac = new JtextField(); contentPane.add(fechaNac); } ...

Aplicaciones GUI en Java Ubicación de componentes en un Frame (Layout) La clase JPanel es un contenedor de objetos que pueden ser desplegados Un JFrame tiene un panel principal que se obtiene invocando getContentPane() JFrame frame = new JFrame(); JPanel contentPane = (JPanel) frame.getContentPane(); . . . Un panel puede contener componentes finales (JLabel, JTextField, etc.) u otros paneles (Jpanel) Esto permite acomodar las cosas en el Frame Se puede utilizar posicionamiento absoluto (x, y) pero esto no es recomendable

Aplicaciones GUI en Java Layouts Los Layouts son clases que determinan la forma como se acomodan los componentes en un panel A cada JPanel se le puede asignar un Layout JPanel panel = new Jpanel() panel.setLayout(new FlowLayout()); Algunos Layouts comunmente usados FlowLayout. De izquierda a derecha y de arriba abajo. GridLayout. Una tabla o cuadrícula (todas las celdas del mismo tamaño). BoxLayout. De arriba abajo o de izquierda a derecha. Tamaño variable (muy importante).

Aplicaciones GUI en Java Eventos Swing permite el desarrollo de aplicaciones manejadas por eventos (event driven) Un evento es un click del ratón, una tecla oprimida, seleccionar una opción en un menú, etc. Para procesar estos eventos una aplicación debe definir unos event listener. Un event listener es un objeto que se registra con un componente para un evento en particular. Cuando ocurre el evento el listener es notificado mediante la invocación de un método

Aplicaciones GUI en Java Para crear un listener la aplicación debe declarar una clase que implementa alguna interfaz listener (listener interface) Las interfaces listener más usadas son: ActionListener MouseListener KeyListener WindowListener

Aplicaciones GUI en Java Ejemplo class EdadKeyListener implements KeyListener { void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if (!Character.isDigit(c) { // error, solo se permiten números } void keyPressed(KeyEvent e) { void keyReleased(KeyEvent e) {

Aplicaciones GUI en Java Existen unas clases adapter que implementan la interfaz correspondiente y definen métodos vacíos Esto da la facilidad de que no hay que implementar los métodos que no interesan class EdadKeyListener extends KeyAdapter { void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if (!Character.isDigit(c) { // error, solo se permiten números }

Aplicaciones GUI en Java Ejemplo de uso TextField edad = new TextField(3); edad.addKeyListener(new EdadKeyListener());

Aplicaciones GUI en Java Cada componente permite agregar un ActionListener que está relacionado con el tipo del componente Pero ejemplo si a un botón se le agrega un ActionListener el mismo es invocado cuando se oprime el botón ya sea con el mouse o con el teclado. No es necesario definir KeyEvents o MouseEvents para esto Los ActionListener se usan principalmente con botones y menús Sin embargo también pueden ser usados con otros tipos de componente. Por ejemplo, para un TextField el ActionListener es invocado cuando el cursor sale del TextField Las listas y tablas utilizan unos listeners especiales denominados SelectionListener

Aplicaciones GUI en Java Ejemplo de un ActionListener JButton btnCancelar = new JButton(“Cancelar”); btnCancelar.addActionListner(new CancelarListener()); class CancelarListener implements ActionListener { void actionPerformed(ActionEvent e) { dialogo.setVisible(false); }

Aplicaciones GUI en Java Diálogos Un diálogo es un frame que permite recolectar datos para realizar algún procesamiento En Java existe una clase JDialog para este fin. JDialog es subclase de JFrame y permite definir diálogos modales y no modales Si un diálogo es modal cuando se activa no se puede acceder a ningún otro elemento del programa Si el diálog es modal se abre la ventana (window) del diálogo pero el usuario puede seleccionar y trabajar con otras ventanas de la aplicación En Swing si el diálogo es modal el hilo que abre el diálogo se bloquea hasta que el diálogo sea cerrado.

Aplicaciones GUI en Java Para crear un diálogo modal se debe especificar en el constructor JDialog dlg = new Jdialog(frame, “Titulo”, true); El tercer parámetros es booleano e indica si el diálogo es modal Generalmente se crea una subclase de JDialog: public class DialogoDatos extends Jdialog { JTextField nombre; ... public DialogoDatos(JFrame frame) { super(frame, “Título”, true); ContentPane cp = (ContentPane) getContentPane(); }

Aplicaciones GUI en Java Ejemplo de uso DialogoDatos dlg = new DialogoDatos(this); dlg.setVisible(true); String nombre = dlg.getNombre(); ... Si el diálogo no es modal el código que sigue a la instrucción continúa ejecutándose en un hilo paralelo. Por lo tanto la lógica a ejecutar debe colocarse en los métodos de los ActionListener definidos en el diálogo

Aplicaciones GUI en Java Como dibujar cosas en una ventana La clase JComponent es la superclase de la cual se derivan todos los componentes en Swing Se pueden crear subclases de JComponent para definir nuevos componentes El método paintComponent(Graphics g) definido en Jcomponent se usa para dibujar el componente Este método es invocado por Swing cada vez que se requiere repintar el componente (por ejemplo, si la ventana estaba debajo de otra y va a pasar a primer plano, o si estaba minimizada y se va restaurar) A continuación se presenta la forma de hacer un componente para dibujar figuras geométricas en la pantalla

Aplicaciones GUI en Java public class SuperficieDibujo extends JComponent { private int width; private int height; private Image image; private Graphics graphics; public SuperficieDibujo(int w, int h) { this.width = w; this.height = h; image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); graphics = image.getGraphics(); this.borrar(); }

Aplicaciones GUI en Java public void dibujarRectangulo(Rectangle rect) { graphics.setColor(Color.BLACK); graphics.drawRect(rect.x, rect.y, rect.width, rect.height); this.repaint(); } public void paintComponent(Graphics g) g.drawImage(image, 0, 0, null);

Aplicaciones GUI en Java Listas La clase JList representa una lista de valores JList lista = new Jlist(); Para que la lista tenga scrollbars se debe colocar dentro de un ScrollPane: JScrollPane sp = new JScrollPane(lista); sp.setPreferredSize(new Dimension(80, 260)); Los elementos de una lista se guardan en un objeto de una clase que implementa la interfaz ListModel La interfaz ListModel define métodos para obtener los elementos de la lista mediante un índice y para obtener el tamaño de la lista

Aplicaciones GUI en Java La clase DefaultListModel implementa ListModel lista = new JList(); ListModel listModel = new DefaultListModel(); lista.setModel(listModel); Para agregar o borrar elementos a la lista se usan métodos definidos en DefaultListModel String s = “Hola”; listModel.addElement(s); listModel.remove(2); Se se requiere funcionalidad adicional se puede definir una subclase de AbstractListModel

Aplicaciones GUI en Java Tablas La clase JTable representa una tabla de valores JTable table = new JTable() Para que la tabla tenga scrollbars se debe colocar dentro de un ScrollPane: JScrollPane sp = new JScrollPane(table); sp.setPreferredSize(new Dimension(80, 260)); Los elementos de una tabla se guardan en un objeto de una clase que implementa la interfaz TableModel La interfaz TableModel define, entre otros, métodos para obtener los elementos de la tabla mediante dos índices (fila y columna) y para obtener el tamaño de la tabla

Aplicaciones GUI en Java La clase DefaultTableModel implementa TableModel Jtable table = new JTable(); TableModel tblModel = new DefaultTableModel(); table.setModel(tblModel); Para agregar o borrar elementos a la tabla se usan métodos definidos en DefaultTableModel Vector fila = new Vector(); tblModel.addRow(fila); tblModel.removeRow(1); Se se requiere funcionalidad adicional se puede definir una subclase de AbstractTableModel