Download Java Applets - Programación Avanzada

Document related concepts
no text concepts found
Transcript
Java Applets
Ing. Martín Jiménez
Java



Diseñado para resolver gran número de problemas en la
práctica de la programación moderna.
JAVA se inició como una pequeña parte de un gran
proyecto de desarrollo de software avanzado.
Desarrollado por SUN Microsystems:
 Proyecto Green (1991): Lenguaje para prescindir de un
sistema operativo.
 Proyecto Oak: Informática basada en red (teléfonos, TV
interactiva)
 Lenguaje Java:
•
Adaptable a cualquier sistema
•
Independencia de arquitecturas
•
Lenguaje universal
Caracteristicas de Java
1.
2.
3.
ES ORIENTADO A OBJETOS:
 Encapsulación
 Herencia
 Polimorfismo
ES DISTRIBUIDO:
 Construido para interconexión TCP/IP.
 Existen librerías para acceder e interactuar con protocolos
como HTTP y FTP.
ES ROBUSTO:
 JAVA realiza verificaciones en compilación/ejecución
 Maneja la memoria para eliminar las preocupaciones sobre
liberación o corrupción de la misma.
 Además de implementar arreglos auténticos en lugar de
listas.
Caracteristicas de Java
4.
5.
ES DE ARQUITECTURA NEUTRAL:
 Compila su código y lo envía a un archivo de tipo objeto
(archivo extensión.class), que tiene un formato
independiente de la arquitectura donde se ejecute.
 Cualquier máquina que tenga el sistema de ejecución (runtime) puede ejecutar ese código objeto.
ES SEGURO:
 El código JAVA pasa pruebas antes de ejecutarse .
 El código pasa por un verificador de formato de los
fragmentos de código.
 El código no produce desbordamiento de operadores de pila.
 El tipo de parámetros de todos los códigos son conocidos y
correctos.
 No permite ocurrido ninguna conversión ilegal de los datos.
 No hay ningún intento de violar las reglas de acceso y
seguridad establecidas.
Caracteristicas de Java
6.
7.
8.
ES PORTABLE:
 Construye sus interfaces de usuario a través de un
sistema abstracto de ventanas (AWT) de forma que
estas pueden ser implantadas bajo cualquier sistema
operativo (UNIX , Microsoft, Linux o Mac).
ES INTERPRETADO:
 El interprete de Java puede ejecutar directamente el
código objeto. No obstante, el compilador actual JDK
es bastante lento.
ES MULTIHILO:
 Permite muchas actividades simultáneas en un
programa. Los hilos son básicamente pequeños
procesos o piezas independientes de un gran proceso.
Java Applet




Un applet es un archivo tipo class que es especificamente
escrito (programado) para desplegar gráficaos en un Web
Browser.
Los applet se embeben en páginas web utilizando la
etiqueta <APPLET> en HTML.
Cuando corren en una página Web, los applets son
“bajados” automaticamente y ejecutados por el Web
Browser.
Los applets se “despliegan” en el espacio que designamos
para ellos en la etiqueta <APPLET>.
Java Applet


Los appets permiten hacer cualquier cosa:
 Desplegar gráficos
 Animaciones
 Manejo de controles
• Cajas de texto
• Botones
• Etc.
Al usar Applets convertimos nuestra página en una página
“activa”
La Clase AWT


La popularidad inicial de Java se debe en gran parte al
AWT (Abstract Windowing Toolkit).
La clase permite, entre otras cosas, el desplegar botones,
etiquetas, menús, cajas combo, cajas de texto y varios
otros controles que son comunes en interfases orientadas
al usuario.
Las clases mas populares del AWT











Applet (crear un applet)
Button (crear un botón)
Canvas (crear un “lienzo” para dibujar)
Checkbox (crea un checkbox)
Choice (crea un control de elección)
Label (crea una etiqueta)
Menu (crea un menu)
Combobox (crea una caja combo)
List (crea una lista)
Frame (crea un marco para aplicaciones windows)
Dialog (crea una caja de diálogo)
Las clases mas populares del AWT









Panel (crea un panel que contiene otros objetos)
Popup Menu (crea un menu Pop Up)
RadioButton (crea un botón de radio)
ScrollBar (crea una barra de scroll)
ScrollPane (crea una superficie “scrolleable”)
TextArea (crea un control de texto de dos dimensiones)
TextField (crea un campo de texto unidimensional)
TextPane (crea una superficie de texto)
Window (crea una ventana libre)
Ejemplo de applet usando AWT
import java.awt.*;
import java.applet.*;
public class Ejemplo extends Applet {
public void init() {
}
public void paint(Graphics g) {
g.drawString("Welcome to Java!!", 50, 60 );
}
}
Llamando al applet
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="000000">
<CENTER>
<APPLET
code = “Ejemplo.class"
width
= "500"
height
= "300"
>
</APPLET>
</CENTER>
</BODY>
</HTML>
Estructura de un Applet

Secciones importantes de un applet: Todas las secciones que se
requieren para construir un applet pueden aparecer u omitirse
dependiendo de las necesidades de la aplicación.
 Sección init: En este método es donde se declaran e
instancian las variables y objetos que se usarán en un applet.
Es el primero en ejecutarse al cargarse un applet. Solo se
manda llamar la primera vez que se carga el applet.
 Sección start: El contenido de este método se ejecutará cada
vez que se vuelva a cargar el HTML que contiene el applet.
 Sección paint: En este método es donde se indica que es lo
que se quiere desplegar, se manda llamar automáticamente
cada vez que se desea que el contenido de una applet sea
desplegado.
 Existen otras secciones no tan relevantes como el update,
destroy, repaint y stop
¿Cómo se programan eventos
en Java?



Un programa escrito en Java maneja los eventos con lo que se
conoce como esquema de delegación.
Bajo el esquema de delegación dos son los principales elementos
que interactúan:
1. El objeto que genera el evento.
2. El objeto que escucha el evento y a través de la instanciación
de una clase implementa el código necesario para manejar el
evento.
Las características sobresalientes del modelo de delegación son
las siguientes:
1. Todo componente puede ser la fuente de un evento.
2. Cualquier clase puede escuchar un evento, para esto debe
indicarse que esa clase tendrá una interfase para escuchar.
3. El evento generado solo se envía a los objetos que se
registraron como “escuchadores”.
Pasos para definir eventos
1.
2.
3.
4.
Definir cuál objeto generará eventos y sobre quién.
Implementar la clase que escuchará dependiendo del
evento generado. (interfase)
Identificar los eventos que se realizarán dentro de la clase
que escucha.
Programar el código dentro de los eventos definidos en el
paso 3, que a su vez están dentro de la clase que escucha.

Cada uno de los pasos anteriores se traduce en código
que debe conocerse y/o programarse.
1. Definir cuál objeto generará
eventos

a.
b.

Pasos:
Agregar al inicio la inclusión de la clase java.awt.event.*:
import java.awt.event.*;
Antes de hacer el add del objeto indicar que se desea que
se escuchen los eventos de este objeto, para esto se
utilizará el método addXXXListener(nombre_clase); donde
XXX indica el tipo de evento que se manejará:
Nombre_objeto.addXXXListener(nombre_clase);
¿Qué tipos de valores puede tomar XXX? ¿Qué objetos lo
pueden usar?
A continuación se muestran los objetos que pueden generar eventos
y el valor que tomaría XXX en cada caso
Descripción del evento
Objeto que lo genera
Método listener
Detecta el evento click cuando
se selecciona el objeto.
Button, List , TextField,
MenuItem
addActionListener(clase que
escucha);
Detecta el evento de
seleccionar un elemento del
objeto
Checkbox, List, Choice
addItemListener(clase que
escucha);
Detecta cuando se ha
presionado una tecla
Component, Button,
Checkbox, TextField
addKeyListener(clase que escucha);
Detecta cuando se hace algo
sobre una ventana(cerrar,
resize)
Window, Dialog, Frame
addWindowListener(clase que
escucha);
Movimiento a lo largo de una
ventana u otro objeto
Scrollbar
addAdjustmentListener(clase que
escucha);
2. Implementar la clase que
escuchará
La clase que escucha es una interfase entre el
addXXListener especificado en el objeto que genera el
evento y los eventos que se desean identificar.
 Pasos:
a) Crear el encabezado de la clase que escucha:
class nombre_clase implements XXXListener{
//contenido de la clase
}
b) Programar el contenido de la clase (esto se convertirá en
el paso ).


¿Qué tipos de valores puede tomar XXX? ¿Qué escuchará
la clase?
A continuación se muestra cómo implementar el encabezado de la
clase que escucha dependiendo del método listener utilizado:
Método listener
Clase que escucha
addActionListener(nombre_clase);
class nombre_clase implements ActionListener{
//Acciones}
addItemListener(nombre_clase);
class nombre_clase implements ItemListener{
//Acciones}
addKeyListener(nombre_clase);
class nombre_clase implements KeyListener{
//Acciones}
addWindowListener(nombre_clase);
class nombre_clase implements WindowListener{
//Acciones}
addAdjustmentListener(nombre_clase);
class nombre_clase implements
AdjustmentListener{ //Acciones}
3. Eventos dentro de la clase que escucha
Cada clase tiene sus propios eventos, estos se definen dentro de la
clase a través de la programación de métodos:
Método listener
Clase que escucha
Método que programa el evento
addActionListener(nombre_clase);
class nombre_clase implements
ActionListener{ //Acciones}
public void actionPerformed(ActionEvent
nombre_evento) {//Código}
addItemListener(nombre_clase);
class nombre_clase implements
ItemListener{ //Acciones}
public void itemStateChanged(ItemEvent
nombre_evento) {//Código}
addAdjustmentListener(nombre_cla
se);
class nombre_clase implements
AdjustmentListener{ //Acciones}
public void
adjustmentsValueChanged(AdjustmentEvent
nombre_evento) {//Código}
3. Eventos dentro de la clase que escucha
Cada clase tiene sus propios eventos, estos se definen dentro de la
clase a través de la programación de métodos:
Método listener
addKeyListener(nombre_clase);
Clase que escucha
class nombre_clase implements
KeyListener{ //Acciones}
public void keyPressed(KeyEvent nombre_evento)
{//Código}
public void keyReleased(KeyEvent nombre_evento)
{//Código}
public void keyTyped(KeyEvent nombre_evento)
{//Código}
class nombre_clase implements
WindowListener{ //Acciones}
public void windowClosed(WindowEvent
nombre_evento) {//Código}
public void windowClosing(WindowEvent
nombre_evento) {//Código}
public void windowOpened(WindowEvent
nombre_evento) {//Código}
***Esto también funciona para
detectar eventos del mouse,
cambiando el Key por Mouse***
addWindowListener(nombre_clase);
Método que programa el evento
4. Programar el código de los eventos

1.
a.
b.
Cada evento es en realidad una clase que tiene sus propios métodos y
atributos, por lo tanto analizaremos algunos métodos importantes de
cada evento instanciado a partir de una clase:
Clase ActionEvent: Esta clase se activa en el momento que se da un
“click” sobre un botón,, un doble “click” en un elemento de una lista,
seleccionar una opción de un Menú o presionar enter en una caja de
texto.
Método getActionCommand:
Sintáxis:
Variable_String=Nombre_evento.getActionCommand();
• Regresa una variable String que identifica la fuente del evento,
normalmente es el texto de un Button, el texto de un item de un
List, el contenido de un TextField o el texto de un MenuItem.
Método setActionCommand():
Sintáxis:
Nombre_evento.setActionCommand(variable_string);
• Sirve para cambiar el texto de un Botón o de un MenuItem como
consecuencia de algo.
4. Programar el código de los eventos

Debido a que la clase anterior maneja Strings es importante
conocer algunas características de esto:
 Los Strings NO son tipos de dato en Java, son una clase
especial que permite manejar arreglos de caracteres como si
fuesen otro tipo de dato.
 La clase String tiene sus propios métodos y atributos que
permiten hacer una serie de cosas, a continuación están los
más importantes:
1. Método valueOf: Convertir un tipo de dato primitivo a
String, su sintáxis es la siguiente:
Variable_string=String.valueOf(nombre_variable);
2. Método equals: Comparar el contenido de un String
contra otro String, devolviendo un valor boolean su
sintáxis es la siguiente:
Variable_string.equals(otra_variable_string);