Anda di halaman 1dari 10

Programacin de Sistemas de Tiempo Real Java: repaso

http://arcos.inf.uc3m.es/~ii_pstr

AWT
Introduccin. Ejemplo. Estructura: visin esttica
partes + composicin + ejemplo.

Interaccin: visin dinmica


partes + composicin + ejemplo.

Canvas

AWT
AWT = Abstract Windows Toolkit
Conjunto de clases de Java orientado a la construccin de interfaces de usuario simples.

AWT => java.awt.*


Paquete de Java que contiene las distintas clases.

Ejemplo
import java. awt.*; public class AWT2 { public static void main(String args[]) { Frame f1 = new Frame("AWT2"); Button b1 = new Button("ok"); f1.add("Center", b1); f1.setSize(100,100); f1.show(); } }

Estructura: partes
Elementos(component): Elementos visuales (o no) como botones, etiquetas, listas, mens, etc. Contenedores (container): Son tambin elementos, pero representan un espacio para posicionar otros elementos, incluidos otros contenedores. Ordenacin (Layout): Disposicin que adopta los elementos sobre su contenedor. Utilidades: Clases de apoyo para diferentes elementos.

Partes: Elementos
Checkbox: una caja a seleccionar. Label: una etiqueta de texto. List: una lista de objetos a seleccionar. Scrollbar: una barra para desplazarse por un documento. TextField: un campo de edicin de texto de una lnea. TextArea: como un TextField pero para mltiples lneas. Canvas: espacio para dibujar grficos. ...

Partes: Contenedores
panel: un contenedor bsico. applet: ventana empotrada. windows: ventana sin ttulo ni sin bordes. dialog: cuadro de dilogo. fileDialog: cuadro de dilogo para seleccionar fichero. frame: ventana con ttulo y bordes .

Partes: Ordenacin
BorderLayout: Dispuestos de acuerdo a puntos orientativos. GridLayout: Dispuestos en una maya. GridBagLayout : En una maya donde los elementos pueden ser de diferentes tamaos. CardLayout: Disposicin basada en tarjetas que pueden alternarse. FlowLayout: Disposicin que ordena los componentes de izquierda a derecha.

Partes: Utilidades
Color Cursor Dimension Font Graphics ...

Estructura: composicin
1. Crear el contenedor de trabajo raz: Frame f1 = new Frame(); 2. Crear los elementos del contenedor: Button f1_b1 = new Button(); Panel f1_p1 = new Panel(); 3. Aadir los elementos: f1.add(f1_b1); f1.add(f1_p1); 4. Si hay subcontenedores, repetir los pasos 2, 3 y 4 con cada uno de estos.

Estructura: Ejemplo
import java.awt.*; public class AWT3 { public static void main(String args[]) { Frame f1 = new Frame("AWT1"); f1.setLayout(new GridLayout(3,2)); f1.add(new Canvas()); f1.add(new Button("1")); f1.add(new Button("2")); f1.add(new Button("3")); f1.add(new Button("4")); f1.add(new Button("5")); f1.setSize(150,150); f1.show(); }

Interaccin: partes
Eventos (Event): Suceso asncrono generado por el usuario (o el sistema) al interaccionar con algn componente. Fuente de eventos: Componentes que generan eventos. Destino de los eventos: Objetos que reciben y procesan los eventos.
Implementar Listeners Extender Adapters

partes: destinatarios
java.awt.event.*

Escuchadores (Listeners): Interfaces que describe como ser avisados cuando se produce una clase de eventos. Adaptadores (Adapters): Clases abstractas que implementan los escuchadores con las acciones por defecto.

Interaccin: composicin
Evento F Escuchador F Adaptador F Fuente F ... ... ...
registrarse

MyAdaptador
...

extender

Interaccin: composicin (2)


Qu eventos puede generar? Qu escuchador/adaptador los procesa?

Conocer la fuente de los eventos: Button b1 = new Button(); Crear el escuchador/adaptador: public class MyListener implements ActionListener { // gestin de eventos } Aadir el escuchador/adaptador: b1.addActionListener( MyListener);

Interaccin: Ejemplo 1
import java.awt.*; import java.awt.event.*; public class AWT4 { static class MyAdapter extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } public static void main(String args[]) { Frame f1 = new Frame("AWT4"); f1.setLayout(new GridLayout(2,1)); f1.add(new Canvas()); f1.add(new Button("ok")); f1.setSize(100,100); f1.show(); f1.addWindowListener(new MyAdapter()); }

Interaccin: Ejemplo 2
public static void main (String args[]) { Canvas c1 = new Canvas() ; c1.setBackground(Color.blue); Button b1 = new Button("ok"); b1.addActionListener(new MyBtnEvn(c1)); Frame f = new Frame("AWT5") ; f.addWindowListener(new MyWinEvn()); f.setLayout(new GridLayout(2,1)); f.add(c1); f.add(b1); f.setSize(100,100); f.pack(); f.show();

} // public class AWT5

Interaccin: Ejemplo 2
import java.awt.*; import java.awt.event.*; import java.awt.Color.*; public class AWT5 { static public class MyWinEvn extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } static public class MyBtnEvn implements ActionListener { Canvas c ; public MyBtnEvn ( Canvas canvas ) { c = canvas; } public void actionPerformed ( ActionEvent e ) { String ac = e.getActionCommand(); if (ok.equals(ac)) { Color color = c.getBackground(); color = (color == Color.blue) ? Color.red : Color.blue ; c.setBackground(color); } } }

import java.lang.*; import java.awt.*; public class AWT6 { static public class MyCanvas extends Canvas {.......} static public void main ( String args[] ) { Frame f = new Frame(); Canvas c1 = new MyCanvas(); f.add("Center",c1);f.setSize(300,300); f.show(); } } public void paint(Graphics g) { g.drawString("MyCanvas",50,200); for (int i=0; i<150; i++) { g.setColor(java.awt.Color.red); g.drawLine(0+i, 0, 150-i, 150); g.drawRect(150, 0, i, 150); try { Thread.sleep(2); } catch (Exception e) {} } }

Canvas

10

Anda mungkin juga menyukai