La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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

2 Applets vs. Aplicaciones –Los programas de Java pueden ser de dos tipos: aplicaciones o applets. –Las aplicaciones (stand-alone) son clases que contienen un método main. public class Prueba{ public static void main(String[] argv){ System.out.println(“Esto es una prueba”); } –Las aplicaciones se corren desde la línea de comando. C:\JAVA\Aplicaciones\javac Prueba =>Compilación C:\JAVA\Aplicaciones\java Prueba =>Corrida Esto es una prueba

3 Applets vs. Aplicaciones –Los applets son programas que aparecen embebidos en una Página Web. Prueba de un Applet Demo de un Applet Prueba.html

4 Despliegue de Applets –El applet puede ser vizualizado en la página Web que lo incluye, a través de un browser. –Otra opción para visualizar un applet es con la utilidad appletviewer. Esta utilidad despliega el applet como sería visualizado en el browser, pero no muestra nada de la Página propiamente dicha. En el ejemplo anterior no aparecería ni el título (prueba de un applet), ni el heading 1 colocado antes de especificar la llamada al applet (Demo de un applet).

5 La Clase Applet –Java provee una clase llamada Applet. –Para definir un applet se debe extender la clase Applet. Public class Prueba extends Applet{ int x=0; int y=0; public void init(){ y=size().height/2; } public void paint(Graphics g){ g.drawString(“Esto es una prueba”,x,y); }

6 Ciclo de Vida de un Applet –Existen cinco métodos de la clase Applet que son invocados automáticamente durante la ejecución de un Applet: *public void init() : Este método es invocado una vez por el appletviewer o el browser, cuando se carga el applet para ejecutarse. En él se deben realizar todas las inicializaciones necesarias. *public void start() : Se invoca después de ejecutar el método init y cada vez que el usuario regresa a la página en la que el applet reside, después de haberse ido a otras páginas. Si el applet no hace nada que necesite ser suspendido cuando el usuario se va de la página web actual (animaciones,etc.), no es necesario implementar este método.

7 Ciclo de Vida de un Applet *public void paint(Graphics g) : Este método es invocado para dibujar en el applet una vez que el método init ha terminado de ejecutarse y se ha iniciado la ejecución del start.También se invoca automáticamente cada vez que el applet necesita redibujarse (e.g. solapamiento de ventanas). El objeto g pertenece a la clase abstracta Graphics, para mantener la portabilidad del lenguaje Java. Dicho objeto g sirve para manejar el contexto gráfico del applet. *public void stop(): Análogo al start, pero para suspender la ejecución. También se ejecuta antes de salir. *public void destroy(): Normalmente se invoca cuando el usuario sale de la sesión de navegación.

8 Diseño de la interfaz –Un applet es un programa inherentemente gráfico (se necesita el contexto gráfico). –Librería para definición y manejo de la interfaz en Java: Swing (paquete javax.swing ). –Jerarquía de herencia de Swing: Object Event Component CheckboxGroup Choice List Button Label Container Checkbox TextComponentTextField PanelApplet

9 Diseño de la interfaz- Componentes –La interfaz se construye en base a componentes (heredan de component) gráficos. –Los WIDGETS son los componentes visuales con los que el usuario puede interactuar mediante el ratón o el teclado. –La interacción con los WIDGETS se maneja a través de Eventos. Object Event Component CheckboxGroup Choice List Button Label Container Checkbox TextComponentTextField PanelApplet Comp. Vis. WIDGET Leyenda:

10 Diseño de la interfaz-Contenedores –Los contenedores son áreas en las que se pueden colocar WIDGETS. –Panel y Applet, por herencia, son contenedores. –Los WIDGETS se colocan en el contenedor empleando el método add de la clase container. Object Event Component CheckboxGroup Choice List Button Label Container Checkbox TextComponentTextField PanelApplet

11 Administradores de Diseño –Ubicación de Componentes : Es posible especificar la disposición de las componentes dentro del panel. –Los administradores de diseño acomodan los componentes en un contenedor. Ej: *FlowLayout: Coloca los componentes secuencialmente (de izquierda a derecha) en el orden en el que se agregaron (layout por defecto), *BorderLayout: Acomoda los componentes en cinco áreas: North, South, East, West y Center, *GridLayout: Acomoda los componentes en filas y columnas. –Es posible colocar un panel dentro de otro panel.

12 Administradores de Diseño import java.applet.Applet; import java.awt.*; import javax.swing.*; public class Grid extends Applet { private Button Button1, Button2, Button3, Button4; public void init() {Button1 = new Button(“Uno”); Button2 = new Button(“Dos”); Button3 = new Button(“Tres”); Button4 = new Button(“Cuatro”); setLayout = new GridLayout(2,3); add( Button1 ); add( Button2 ); add( Button3 ); add( Button4 ); }

13 Administradores de Diseño –El diseño u organización de un contenedor se establece con el método setLayout de la clase container. Como el applet es un panel y este es un container es posible hacer: setLayout = new GridLayout(2,3); Se define un grid de 2 filas y 3 columnas. –Los botones se colocan en el Grid en el orden en el que son añadidos.

14 Administradores de Diseño import java.applet.Applet; import java.awt.*; import javax.swing.*; public class Flow extends Applet { private JTextField t1,t2; private JPanel p1,p2; public void init() {p1 = new JPanel(); p2 = new JPanel(); p1.setLayout = new FlowLayout(FlowLayout.RIGHT,0,10); p2.setLayout = new FlowLayout(FlowLayout.LEFT,10,0); t1 = new JTextField(“Texto”); //componente1 t2 = new JTextField(“Campo”); //componente2 p1.add( t1 ); p2.add( t3 ); add( p1 ); add( p2 ); }

15 Administradores de Diseño –El ejemplo anterior es más complicado pues se definen dos páneles y dentro de estos colocan Campos de Texto. –Hay que establecer el Administrador de diseño de cada panel definido: p1.setLayout = new FlowLayout(FlowLayout.RIGHT,0,10); p2.setLayout = new FlowLayout(FlowLayout.LEFT,10,0); *Parámetros del Constructor: (FlowLayout.RIGHT,0,10): Alineación de los componentes a la derecha. Cada componente queda separada por 0 pixels horizontalmente y 10 pixels verticalmente. –Hay que añadir los Campos de Texto (o cualquier otro componente) a los páneles y, luego, los páneles al applet.

16 Componentes –Label : área donde se puede desplegar texto no editable. –Botón : responde al click del ratón. –Lista : área donde se despliega una lista de elementos. Estos elementos pueden ser seleccionados. –Campo de texto : área en la que el usuario introduce datos mediante el teclado. –Panel : es un contenedor en el que pueden colocarse componentes. –Checkbox : son botones de estado, tienen valor de encendido/apagado o verdadero/falso. –Choice : proporciona una lista de elementos entre los cuales el usuario puede escoger.

17 Ejemplo - Label import java.applet.Applet; import javax.swing.*; public class MyLabel extends Applet { private Font f; private JLabel noLabel, textLabel; public void init() {f = new Font(“Courier”. Font.BOLD, 14); noLabel = new JLabel(); // llamar al constructor de Label sin texto textLabel = new JLabel(“Este texto se lee”); // llamar al const. de Label // con string // llamar al constructor de Label sin texto textLabel.setFont( f ); // fijar el tipo de la fuente // agregar los componentes Label al contenedor Applet add( noLabel ); add( textLabel ); }

18 Eventos –Las GUI se controlan por eventos (acciones asíncronas). –El manejador de ventanas envía los eventos a los programas java. –Los eventos se almacenan en objetos de la clase Event que hereda directamente de la clase object. –Todos los componentes generan eventos, excepto Label y Panel.

19 Ejemplo - Botón import java.applet.Applet; import java.awt.*; import javax.swing.*; public class MyButtons extends Applet { private JButton pushButton1, pushButton2; public void init() {pushButton1 = new JButton(“Pulse aqui”); pushButton2 = new JButton(); add( pushButton1 ); add( pushButton2 ); } public boolean action( Event e, Object o) {if (e.target instanceof Button) { if (e.target == pushButton1) showStatus( “Usted pulsó: ” + o.toString() ); else if (e.target == pushButton2) showStatus( “Usted pulsó: ” + e.arg() ); return true; } return true; }

20 Ejemplo - Botón –Creación de Botones : etiquetado y sin etiquetar (respectivamente) pushButton1 = new Button(“Pulse aqui”); pushButton2 = new Button(); No es conveniente declarar otro botón sin etiqueta porque es ambiguo para el usuario y en algunos casos el manejo de eventos identifica los botones por su etiqueta. –Manejo de Eventos : public boolean action( Event e, Object o) *Cuando se hace click en un botón, se invoca el método action, el cual devuelve un valor boolean y recibe dos argumentos : Event y Object. *Event e : almacena información específica acerca del componente que generó el evento y el tipo de evento ocurrido. *Object o : almacena información específica del componente y relativa al evento. En el caso de un Buton, es la etiqueta del botón.

21 Ejemplo - Botón –Discriminación del tipo del componente que generó el evento: if (e.target instanceof Button) *e.target : identifica al componente que generó el evento. *Instanceof : determina si un objeto es instancia de una clase. –Toma de acciones : pushButton1 --> showStatus( “Usted pulsó: ” + o.toString() ); *Acción : “Usted pulsó : Pulse aquí”. El objeto o almacena la etiqueta del botón. pushButton2 --> showStatus( “Usted pulsó: ” + e.arg() ); *Acción : “Usted pulsó : ”. La variable e.arg almacena la etiqueta del botón. Siempre es idéntico a o.

22 Pueden visitar la pagina http://java.sun.com y en ella el tutorial de Swing y Java, ambos se pueden bajar, se recomiendan en particular los ejemplos del tutorial de Swing, donde se encuentran bien explicados los codigos fuentes de los demos, las funciones utilizadas y la captura de eventos. Más información


Descargar ppt "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."

Presentaciones similares


Anuncios Google