Escolar Documentos
Profissional Documentos
Cultura Documentos
Cmo construir GUIs? Interfaces grficas de usuario. Ejemplos. Packages java.awt y java.awt.event AWT (Abstract Windows Toolkit) Jerarqua de clases. Clase Graphics. Ejemplos. Usando Widgets a toda potencia. Uso de gestores de maquetacin. Manejo de eventos en AWT. Diseo e implementacin de una aplicacin
PG -
PG -
Aplicacin = GUI + gestin eventos Componentes: Windows y frames, Mens desplegables, File dialogs, Canvas, Botones, Scroll. Package java.awt (Grficos) Package java.awt.event (Gestin eventos)
PG -
PG -
File dialogs
PG -
PG -
PG -
Elementos
AWT (Abstract Windows Toolkit): Conjunto de clases para construir interfaces grficas de usuario (GUIs).
Componentes: Mens, botones, etiquetas, selectores, reas de texto, etc. Eventos: listeners (objetos que se asocian a componentes y manejan los eventos especficos de su clase (pulsado de botn, eventos de ratn, de ventana, etc.)
PG -
Jerarqua de clases
PG -
PG -
10
Graphics: ejemplo
import java.applet.*; import java.awt.*; public class Ovalos extends Applet { public void paint (Graphics g) { int i; // Pintar fondo negro g.setColor(Color.black); g.fillRect(0,0, 500, 350);
PG -
11
Graphics: ejemplo
// Pintar los diez agujeros for (i=0; i<=9; i++) pintarAgujero(i, g); // Pintar el texto g.setColor(Color.blue); g.setFont(new Font("TimesRoman",Font.BOLD, 36)); g.drawString("Ovalos...!", 22, 300); // Pintar el texto como haciendo sombra) g.setColor(Color.white); g.drawString("Ovalos...!", 20, 298); }
PG -
12
Graphics: Ejemplo
public void pintarAgujero(int n, Graphics g) { int x0=50, // x-esquina sup-izq del ovalo exterior y0=50, // y-esquina sup-izq del ovalo exterior w0=350,// anchura del ovalo exterior h0=200,// altura del ovalo exterior INC_X = 30, // Incremento-x entre ovalos INC_Y = 10, // Incremento-y entre ovalos INC_RG = 10, // Incremento de R y G (color) INC_B = 25; // Incremento de B (azul) g.setColor(new Color(n*INC_RG, n*INC_RG, (n+1)*INC_B)); g.fillOval(x0+n*INC_X, y0+n*INC_Y, w0-n*INC_X, h0-n*2*INC_Y); } }
F.Escolano & M.I.Alfonso
PG -
13
PG -
14
PG -
15
PG -
16
PG -
17
PG -
18
PG -
19
PG -
20
Ejemplo sencillo
public class Beep2 extends Applet { public void init() { BotonBeep botonBeep = new BotonBeep("Beep"); add(botonBeep); } } class BotonBeep extends Button implements ActionListener { public BotonBeep(String str) { super(str); addActionListener(this); } public void actionPerformed(ActionEvent event) { Component c = (Component)event.getSource(); c.getToolkit().beep(); } }
F.Escolano & M.I.Alfonso
PG -
21
Registro Registro componente1 componente1 Registro Registro Registro Registro componente2 componente2 Registro Registro
oyente1 oyente1 Eventos Eventos componente1 componente1 oyente2 oyente2 Eventos Eventos componente2 componente2 oyente3 oyente3 Eventos Eventos Eventos Eventos
oyente1 oyente1
oyente2 oyente2
oyente3 oyente3
Los eventos solamente sern escuchados por los objetos de las clases que implementen la interfaz correspondiente: XXXXEvent -> XXXXListener
F.Escolano & M.I.Alfonso
PG -
22
PG -
23
Cada componente puede generar un determinado tipo de evento. La capacidad de generar eventos se hereda!
F.Escolano & M.I.Alfonso
PG -
24
EjemploAWT.java
public void init() { menu = new Choice(); .... MiItemListener il = new MiItemListener(); menu.addItemListener(il); add(menu); cb1 = new Checkbox("Checkbox 1"); cb1.addItemListener(il); add(cb1); .... text = new TextField("Escribe algo aqu"); add(text); Button boton = new Button("Escribir"); boton.addActionListener(new BotonListener()); add(boton); output = new TextArea(10, 40); add(output); }
F.Escolano & M.I.Alfonso
PG -
25
EjemploAWT.java (2)
class BotonListener implements ActionListener public void actionPerformed(ActionEvent String str = menu.getSelectedItem(); if (cb1.getState()) // Checkbox str = str + " " + cb1.getLabel(); if (cb2.getState()) str = str + " " + cb2.getLabel(); if (cb3.getState()) str = str + " " + cb3.getLabel(); str = str + " " + text.getText(); // output.append(str+"\n"); } }
{ event) { // Choice
TextField
PG -
26
EjemploAWT.java (3)
class MiItemListener implements ItemListener { public void itemStateChanged(ItemEvent event) { Object source = event.getSource(); if (source instanceof Choice) output.append(((Choice)source). getSelectedItem()+" seleccionada\n"); else if (source instanceof Checkbox) output.append(((Checkbox)source). getLabel()+" ha cambiado\n"); } }
PG -
27