Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estado de México
CUADERNILLO DE APUNTES
Pag.
ÍNDICE
1. EVENTOS.
1.1. Tipos de eventos. 1
1.2. Generación y propagación de eventos. 2
1.3. Métodos de control de eventos. 3
1.4. Creación de eventos. 4
Actividad. 5
3. COMPONENTES Y LIBRERÍAS.
3.1. Definición conceptual de componentes, paquetes/librerías. 11
3.2. Uso de componentes (visuales y no visuales) proporcionados por 12
el lenguaje.
3.3. Uso de librerías proporcionadas por el lenguaje. 14
3.4. Creación de componentes (visuales y no visuales) definidos por
el usuario. 15
3.5. Creación y uso de paquetes/librerías definidas por el usuario. 19
Actividad. 21
Bibliografía. 48
Anexos.
Solución ejercicio unidad I. 49
Tecnológico de Estudios Superiores del Oriente del
Estado de México
UNIDAD 1: EVENTOS
Objetivo: Resolver problemas utilizando programación de eventos.
Eventos semánticos.
No están relacionados con una clase específica de componente sino que pueden
aplicarse a todos los componentes que implementen un modelo semántico similar.
1
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Una fuente genera un evento y lo envía a uno a más oyentes o auditores, que han
estado simplemente esperando hasta que reciben ese evento y una vez recibido lo
procesan y lo devuelven.
Una fuente es un objeto que genera un evento. Esto ocurre cuando cambia de
alguna manera el estado interno de ese objeto. Las fuentes pueden generar más
de un tipo de eventos.
Una fuente tiene que ir acompañada de auditores para que estos reciban las
notificaciones sobre el tipo específico de evento, cada tipo de evento tiene su
propio método de registro.
2
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Button.
Genera eventos de acción (ActionEvent) cuando se presiona el botón.
Checkbox.
Genera eventos de elementos (ItemEvent) cuando se selecciona o deselecciona
un checkbox.
Choice.
Genera eventos de elementos cuando se cambia de opción choice.
List.
Genera eventos de acción cuando se hace doble click sobre un elemento, genera
eventos de elemento cuando se selecciona o deselecciona un elemento.
Menu Item.
Generá eventos de acción cuando se selecciona un elemento de menú; genera
eventos del elemento cuando se selecciona o se deselecciona un elemento de un
menú de opciones.
Scrollbar.
Genera eventos de ajuste (AdjustmentEvent) cuando se manipula el scrollbar.
Text components.
Genera eventos de texto (TextEvent) cuando el usuario introduce un carácter.
Window.
Genera eventos de ventana (WindowEvent) cuando una ventana se activa, se
cierra, se desactiva, se minimiza, se maximiza, se abre o se sale de ella.
3
Tecnológico de Estudios Superiores del Oriente del
Estado de México
4
Tecnológico de Estudios Superiores del Oriente del
Estado de México
ACTIVIDAD DE LA UNIDAD:
CUESTIONARIO
1. ¿Que es un evento?
5
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Si un ser humano quiere interactuar con una máquina necesita un medio para
poder hacerlo. Ese medio es, precisamente, lo que se conoce como interfaz de
usuario; la parte del sistema que interactúa con el usuario. La interfaz es un lugar
de encuentro entre los bits y las personas.
Un buen programa con una interfaz pobre y no adaptada a las tareas a realizar, no
sirve de mucho, ya que la interfaz será más una barrera que un medio que facilite
la interacción. Hay que tener siempre presente que la interfaz de usuario
determina la usabilidad de la aplicación.
Por lo tanto, la interfaz de usuario debe ser usable, lo que implicará que el usuario
consiga realizar las tareas por medio de ella de forma rápida y sencilla, y se
encuentre cómodo con la aplicación.
Una interfaz gráfica de usuario (GUI) es una interfaz de usuario en la que se hace
uso de un entorno gráfico. Es decir, permite la interacción del usuario con el
ordenador mediante la utilización de imágenes, objetos pictóricos (ventanas,
6
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Una aplicación sin un interfaz fácil, impide que los usuarios saquen el máximo
rendimiento del programa. Java proporciona los elementos básicos para construir
decentes interfaces de usuario a través del AWT, y opciones para mejorarlas
mediante Swing, que sí permite la creación de interfaces de usuario de gran
impacto y sin demasiados quebraderos de cabeza por parte del programador.
Las interfaces gráficas están formadas por ventanas de diferentes tipos que se
pueden solapar, mover, cerrar, etc. Dentro de estas ventanas se encuentran otros
elementos (botones, etiquetas, campos de texto, imágenes, etc.) que permiten
introducir datos y mostrar el estado de la aplicación. El ratón y el teclado permiten
manejar los elementos que forman parte de la interfaz.
7
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Para implementar una aplicación que nos permita generar una interfaz grafica de
usuario se debe de seguir la siguiente estructura:
Ventanas.
Ventanas de aplicación.
Las ventanas de aplicación son aquellas que contienen a todos los elementos de
una aplicación.
Cuadros de diálogo.
8
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Ventanas internas.
Las ventanas internas son un tipo de ventanas específico. Se suelen utilizar para
albergar documentos dentro de la ventana de aplicación o para mostrar cajas de
herramientas.
Componentes.
Todos aquellos elementos de una interfaz gráfica con entidad propia y una
funcionalidad asociada con componentes. Por ejemplo: botones, barras de
desplazamiento, etiquetas, imágenes, listas desplegables, tablas, árboles, etc. No
son componentes, por ejemplo, los colores, las líneas, las letras, los píxeles, etc.
Controles.
Los controles son aquellos componentes que pueden recibir información del
usuario cuando éste interactúa con la aplicación mediante el ratón o el teclado.
Los más comunes son: botones, barras de desplazamiento, cuadros de texto, etc.
Contenedores.
Menús.
Barras de menús.
9
Tecnológico de Estudios Superiores del Oriente del
Estado de México
JOptionPane.ERROR_MESSAGE.
Muestra un cuadro de dialogo que muesta un error al usuario, muestra icono
JOptionPane.INFORMATION_MESSAGE.
Muestra un cuadro de dialogo que muestra un mensaje informativo al usuario,
muestra icono
JOptionPane.WARNING_MESSAGE.
Muestra un cuadro de dialogo que muestra un mensaje de peligro al usuario,
muestra icono
JOptionPane.QUESTION_MESSAGE.
Muestra un cuadro de dialogo que muestra un mensaje de pregunta al usuario,
muestra icono
JOptionPane.PLAIN_MESSAGE.
Muestra un cuadro de dialogo que muestra un mensaje, sin icono
ACTIVIDAD DE LA UNIDAD:
10
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Componente.
Cabe mencionar que los componentes nunca se encuentran de forma aislada, sino
agrupados dentro de contenedores. Los contenedores contienen y organizan la
situación de los componentes; además, son en sí mismos componentes y como
tales pueden ser situados dentro de otros contenedores.
Paquetes.
Los paquetes en Java son una manera de organizar nuestras clases, ya sea por
finalidad, por su relación con la herencia que tienen, etc.
package NombreDeLaCarpeta;
5. A las clases que utilicen las clases enpaquetadas, se les indica la ruta de
las clases correspondientes, ocupando la palabra reservada “import”.
import NombreDeLaCarpeta.*;
11
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Librerías.
Swing es un conjunto de componentes visuales que son parte del java. Son
livianos respecto a sus antecesores llamados AWT y son independientes de la
plataforma.
12
Tecnológico de Estudios Superiores del Oriente del
Estado de México
JWindow JInternalFrame
Contenedor de componentes:
Componentes de menú:
JMenu JCheckboxMenuItem
JMenuBar
JPopupMenu JMenuItem
JRadioButtonMenuItem
Componentes de texto:
Componentes de complejos:
13
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Controles atómicos:
java.lang
java.io
Soporta flujos de entrada y salida java.
java.net
Soporta facilidades de red (URL, sockets TCP, sockets UDP, direcciones IP,
conversiones binarias a texto).
java.util
java.awt
14
Tecnológico de Estudios Superiores del Oriente del
Estado de México
javax.swing
java.sql
java.sound.midi
java.math
java.applet
15
Tecnológico de Estudios Superiores del Oriente del
Estado de México
16
Tecnológico de Estudios Superiores del Oriente del
Estado de México
17
Tecnológico de Estudios Superiores del Oriente del
Estado de México
18
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Los paquetes son el mecanismo por el que Java permite agrupar clases,
interfaces, excepciones y constantes. De esta forma, se agrupan conjuntos de
estructuras de datos y de clases con algún tipo de relación en común.
Creación de un paquete:
1. Declaración
Para declarar un paquete se utiliza la sentencia package seguida del nombre del
paquete que estemos creando:
package NombrePaquete;
2. Nomenclatura.
Para que los nombres de paquete puedan ser fácilmente reutilizados en toda una
compañía o incluso en todo el mundo es conveniente darles nombres únicos. Esto
puede ser una tarea realmente tediosa dentro de una gran empresa, y
absolutamente imposible dentro de la comunidad de Internet.
3. Subpaquetes.
Cada paquete puede tener a su vez paquetes con contenidos parecidos, de forma
que un programador probablemente estará interesado en organizar sus paquetes
de forma jerárquica. Para eso se definen los subpaquetes.
19
Tecnológico de Estudios Superiores del Oriente del
Estado de México
El JDK define una variable de entorno denominada CLASSPATH que gestiona las
rutas en las que el JDK busca los subpaquetes. El directorio actual suele estar
siempre incluido en la variable de entorno CLASSPATH.
Uso de un paquete.
import PaquetePrueba.*;
import Paquete.Subpaquete1.Subpaquete2.Clase1;
Paquete.Subpaquetes1.Subpaquete2.Clase_o_Interfaz.elemento
20
Tecnológico de Estudios Superiores del Oriente del
Estado de México
ACTIVIDAD DE LA UNIDAD:
CUESTIONARIO
21
Tecnológico de Estudios Superiores del Oriente del
Estado de México
sleep(long)
start()
Este método indica al intérprete de Java que cree un contexto del hilo del sistema
y comience a ejecutarlo. A continuación, el método run() de este hilo será
invocado en el nuevo contexto del hilo. Hay que tener precaución de no llamar al
método start() más de una vez sobre un hilo determinado.
run()
stop()
suspend()
resume()
setPriority( int )
El método setPriority() asigna al hilo la prioridad indicada por el valor pasado como
parámetro. Hay bastantes constantes predefinidas para la prioridad, definidas en
la clase Thread, tales como MIN_PRIORITY, NORM_PRIORITY y
MAX_PRIORITY, que toman los valores 1, 5 y 10, respectivamente.
getPriority()
Este método devuelve la prioridad del hilo de ejecución en curso, que es un valor
comprendido entre uno y diez.
setName( String )
Este método permite identificar al hilo con un nombre nemónico. De esta manera
se facilita la depuración de programas multihilo. El nombre mnemónico aparecerá
en todas las líneas de trazado que se muestran cada vez que el intérprete Java
imprime excepciones no capturadas.
23
Tecnológico de Estudios Superiores del Oriente del
Estado de México
getName()
Este método devuelve el valor actual, de tipo cadena, asignado como nombre al
hilo en ejecución mediante setName().
Mientras que los programas de flujo único pueden realizar su tarea ejecutando las
subtareas secuencialmente, un programa multihilo permite que cada thread
comience y termine tan pronto como sea posible. Este comportamiento presenta
una mejor respuesta a la entrada en tiempo real.
25
Tecnológico de Estudios Superiores del Oriente del
Estado de México
El hilo principal.
• Es el hilo a partir del cual se crean el resto de los hilos del programa.
• Normalmente, debe ser el último que finaliza su ejecución, ya que cuando el
hilo principal finaliza, el programa termina.
Thread t = Thread.currentThread( );
Este método devuelve una referencia al hilo desde donde fue llamado. Una vez
obtenida la referencia del hilo principal, se puede controlar del mismo modo que
otro hilo.
class hilop
{
public static void main(String args[])
{
Thread t= Thread.currentThread();
t.setName("toto");
try{
for(int i=5;i>=1;i--)
{
System.out.println(i);
Thread.sleep(1000);
}
}catch(InterruptedException e){
26
Tecnológico de Estudios Superiores del Oriente del
Estado de México
}
}
Existen 2 formas de definir una clase para que pueda ejecutarse en paralelo a
otras clases:
hilo(String name)
{
27
Tecnológico de Estudios Superiores del Oriente del
Estado de México
super(name);
nombre=name;
start();
}
try{
for(int i=0;i<=9;i++)
{
System.out.println(nombre+" "+i);
Thread.sleep(500);
catch(InterruptedException e){
System.out.println(e);
}
}
}
try{
for(int i=0;i<=9;i++)
{
{ System.out.println("main "+i);
28
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Thread.sleep(500);
}catch(InterruptedException e){
System.out.println(e);
}
}
}
La forma más fácil de crear un hilo es crear una clase que implemente la interfaz
Runnable. El único requisito es que implemente el método run que define la
entrada para arrancar el hilo.
Es necesario que se defina un objeto del tipo Thread dentro de la clase, que le
permitirá arrancar el hilo mediante el llamado al método start que hará que se
ejecute le método run.
Thread t;
hilor(String name){
nombre=name;
t=new Thread(this,nombre);
t.start();
29
Tecnológico de Estudios Superiores del Oriente del
Estado de México
try{
for(int i=0;i<=9;i++){
System.out.println(nombre+" "+i);
Thread.sleep(500);
catch(InterruptedException e){
System.out.println(e);
try{
for(int i=0;i<=9;i++){
{ System.out.println("main "+i);
Thread.sleep(500);
}catch(InterruptedException e){
System.out.println(e);
30
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Sincronización de Procesos.
Cuando dos o mas hilos tienen que acceder a un recurso compartido, se debe
asegurar de alguna manera que solo uno de ellos accede a ese recurso en cada
instante. El proceso mediante el que se consigue este se denomina
sincronización.
Un hilo que posea un monitor puede volver a entrar en el mismo monitor si así lo
desea.
o Métodos sincronizados.
synchronized(objeto){
}
31
Tecnológico de Estudios Superiores del Oriente del
Estado de México
class imprime{
System.out.print("["+mensaje);
try{
Thread.sleep(1000);
catch(InterruptedException e){
System.out.println(e);
System.out.print("]");
Thread t;
t=new Thread(this,name);
obj=o;
t.setPriority(p);
32
Tecnológico de Estudios Superiores del Oriente del
Estado de México
t.start();
synchronized(obj){
obj.imprimir(t.getName());
}
public class hilosinc{
try{
A.t.join();
B.t.join();
C.t.join();
catch(InterruptedException e){
System.out.println(e);
}
33
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Métodos sincronizados.
class imprime{
System.out.print("["+mensaje);
try{
Thread.sleep(1000);
catch(InterruptedException e){
System.out.println(e);
System.out.print("]");
Thread t;
t=new Thread(this,name);
obj=o;
t.setPriority(p);
t.start();
try{
A.t.join();
B.t.join();
C.t.join();
catch(InterruptedException e){
System.out.println(e);
35
Tecnológico de Estudios Superiores del Oriente del
Estado de México
ACTIVIDAD DE LA UNIDAD:
EJERCICIO
a) Iniciar recorrido.
b) Detener recorrido.
c) Reiniciar recorrido.
d) Eliminar recorrido.
36
Tecnológico de Estudios Superiores del Oriente del
Estado de México
5.1. Introducción.
Cada día son más los usuarios de dispositivos móviles, lo que ha convertido estos
dispositivos en una parte esencial de la vida cotidiana de las personas, debido a
las mejoras tanto en la posibilidad de acceso como en el desarrollo de software.
Los sistemas operativos y las aplicaciones de los dispositivos móviles han estado
en constante desarrollo, pero Sun Mycrosystems da un paso adelante dentro de
su tecnología Java, J2ME (Java 2 Micro Edition) que es una colección de
funciones y procedimientos que ofrece una biblioteca para ser utilizada en los
desarrollos de software. Esta librería está desarrollada en java y está orientada a
productos de consumo como PDA’s, teléfonos móviles o electrodomésticos.
37
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Entre los sistemas operativos para dispositivos móviles se tienen: Symbian Os,
Android, Linux,Windows Mobile, Blackberry Os, iPhoneOs, Palm Os.
Podemos deducir que el uso de uno u otro S.O determinarán las capacidades
multimedia de los dispositivos, y la forma de éstas de interactuar con el usuario.
Existen multitud de opciones, si bien las más extendidas son Symbian, BlackBerry
OS, Windows Mobile, y recientemente iPhone OS y el sistema móvil de Google,
Android, además por supuesto de los dispositivos con sistema operativo Linux.
Symbian.
Windows Mobile.
Microsoft lanzó su propio Windows para móviles, antes conocido como Windows
CE o Pocket PC, tiene una larga historia como segundón en el campo de los PDA
u ordenadores de bolsillo, sin embargo hace pocos meses superó por primera vez
al hasta entonces líder, Palm OS.
Una de las ventajas de Windows Mobile sobre sus competidores es que los
programadores pueden desarrollar aplicaciones para móviles utilizando los
mismos lenguajes y entornos que emplean con Windows para PC. En
comparación, las aplicaciones para Symbian necesitan más esfuerzo de
desarrollo, aunque también están optimizadas para cada modelo de teléfono.
Android.
iPhone OS.
39
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Blackberry OS.
Linux.
Palm OS.
40
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Existe ya una red que permite la integración de voz y datos y que es conocida
como GSM (Global System for Mobil Communications) Sistema Global para
comunicaciones Móviles.
41
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Otra característica importante del Protocolo WAP es que ha sido diseñada para
adaptarse a transportes futuros como el servicio GPRS (General Packet Radio
Service) Servicio de Radio General por Paquetes.
Las redes de comunicación móvil son ahora cada vez más abiertas con el objetivo
de facilitar el despliegue de los servicios y aplicaciones, ofreciendo nuevas
oportunidades a terceras partes como desarrolladores y proveedores de
42
Tecnológico de Estudios Superiores del Oriente del
Estado de México
La clase Midlet posee tres métodos abstractos que toda aplicación debe
implementar, estos métodos definen el ciclo de vida de un Midlet.
43
Tecnológico de Estudios Superiores del Oriente del
Estado de México
Activado: Estado de ejecución del MIDlet al que se pasa tras ejecutar su método
startApp(), tanto inicialmente o como después de la recuperación de una pausa.
Creación de un MIDLET.
45
Tecnológico de Estudios Superiores del Oriente del
Estado de México
ACTIVIDAD DE LA UNIDAD:
EJERCICIO
Realiza un MIDLET que permita validar los tipos de datos que se ingresan.
47
Tecnológico de Estudios Superiores del Oriente del
Estado de México
BIBLIOGRAFIA.
1. Java,Developer’s Reference.
Cohn, Mike; Morgan, Bryan; T. Nygard Michael; Joshi, Dan; Trinko, Tom.
Sams.net (1ª Editorial) 1996.
2. Tutorial de Java.
Agustín Froufe.
Universidad de Sevilla.
48
Tecnológico de Estudios Superiores del Oriente del
Estado de México
ANEXOS.
UNIDAD 1 - “CUESTIONARIO”
1. ¿Que es un evento?
KeyEvent.
• Botones.
• Listas.
• RadioButton.
java.awt.event
WindowsEvent.
49
Tecnológico de Estudios Superiores del Oriente del
Estado de México
swing
awt
INTERFAZ GRAFICA DE
USUARIO
VENTANA
GRAFICA
50
Tecnológico de Estudios Superiores del Oriente del
Estado de México
UNIDAD 3 - “CUESTIONARIO”
Se utilizan para organizar clases, ya sea por finalidad, por su relación con la
herencia que tienen, etc.
import
JPanelForm
51
Tecnológico de Estudios Superiores del Oriente del
Estado de México
UNIDAD 4 - “EJERCICIO”
a) Iniciar recorrido.
b) Detener recorrido.
c) Reiniciar recorrido.
d) Eliminar recorrido.
SOLUCIÓN:
package HILO_CARRO;
import javax.swing.*;
public class HiloCarroCon_1 extends Thread
{
JLabel lbg1;
52
Tecnológico de Estudios Superiores del Oriente del
Estado de México
int i=0;
try
{
while (i<=3)
{
Thread.sleep(400);
lbg1.setBounds(1,200,92,52);
lbg1.setVisible(true);
Thread.sleep(200);
lbg1.setBounds(50,200,92,52);
Thread.sleep(200);
lbg1.setBounds(100,200,92,52);
Thread.sleep(200);
lbg1.setBounds(150,200,92,52);
Thread.sleep(200);
lbg1.setBounds(200,200,92,52);
Thread.sleep(200);
lbg1.setBounds(250,200,92,52);
Thread.sleep(200);
lbg1.setBounds(300,200,92,52);
Thread.sleep(200);
lbg1.setBounds(350,200,92,52);
Thread.sleep(200);
lbg1.setBounds(400,200,92,52);
Thread.sleep(200);
lbg1.setBounds(450,200,92,52);
Thread.sleep(200);
lbg1.setBounds(500,200,92,52);
Thread.sleep(200);
lbg1.setBounds(550,200,92,52);
Thread.sleep(200);
lbg1.setBounds(600,200,92,52);
Thread.sleep(200);
53
Tecnológico de Estudios Superiores del Oriente del
Estado de México
lbg1.setBounds(650,200,92,52);
i++;
}
}
catch(InterruptedException e)
{
System.out.print(e);
}
}
}
}
obj.start();
obj.suspend();
obj.resume();
obj.stop();
54
Tecnológico de Estudios Superiores del Oriente del
Estado de México
UNIDAD 5 - “EJERCICIO”
Realiza un MIDLET que permita validar los tipos de datos que se ingresan.
55
Tecnológico de Estudios Superiores del Oriente del
Estado de México
SOLUCIÓN:
int num=0;
int opc;
opc=choiceGroup.getSelectedIndex();
//VALIDANDO NUMEROS
if(opc==0)
{
try
{
num=Integer.parseInt(textField.getString());
switchDisplayable(null, getSplashScreen());
splashScreen.setText("DATO VALIDO");
}
56
Tecnológico de Estudios Superiores del Oriente del
Estado de México
catch(Exception e)
{
switchDisplayable(null, getSplashScreen());
splashScreen.setText("ERROR EN EL TIPO DE DATO:"+num);
}
}
//VALIDANDO CARACTERES
if(opc==1)
{
try
{
num=Integer.parseInt(textField.getString());
switchDisplayable(null, getSplashScreen());
splashScreen.setText("ERROR EN EL TIPO DE DATO:"+num);
}
catch(Exception e)
{
switchDisplayable(null, getSplashScreen());
splashScreen.setText("DATO VALIDO");
}
}
57