Programación Java J2ME: Java para dispositivos móviles

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación Java J2ME: Java para dispositivos móviles"

Transcripción

1 Master Universitario en Informática Aplicada a las Telecomunicaciones Móviles Programación Java J2ME: Java para dispositivos móviles Febrero 2006 David Bueno Vallejo Plan Introducción Instalación Primer Programa Interfaz de Usuario en J2ME Commands Screen (Alertas, formularios, imágenes, choicegroup, ticker) GameCanvas (lectura de teclado, dibujar en pantalla, sprites, RMS HTTP Vibraci Otros: tiledlayer, tiledmanager, scroll,, colisiones) Vibración n e Iluminación Otros: bluetooth/obex obex,, servicios Web, Gráficos 3D, sonido y músicam Referencias 2 1

2 Introducción Se llama J2ME (Java Micro Edition) ) a las implementaciones de Java par dispositivos móvilesm Hay varias implementaciones dependiendo del tipo de dispositivo Teléfonos, PALM, Blackberry CLDC y MIDP PDAs Pocket PC Personal Java (jdk 1.22) Blackberry API propia En este tema se ve la implementación n relacionada con Teléfonos Móviles, M PALM y Blackberry (API MIDP) 3 Introducción El universo de J2ME. Imagen de [Knudsen2003] 4 2

3 Introducción Componentes software de MIDP. Imagen de [Knudsen2003] 5 Instalación Java Development Kit (JDK) Descripción: Entorno de desarrollo de java para PC. Versión n o superior (última( 1.5 y 1.6 Beta) Descarga: j2sdk-1_4_2 1_4_2-windows-i586. i586.exe y j2sdk-1_4_2 1_4_2-doc.zip (docs) Instalación: n: Ejecutar el instalador y seleccionar la carpeta por defecto. P.ej: c:\jsdk1 jsdk1.4.2 Descomprimir la documentación n en esa carpeta Actualizar la variable de entorno PATH=c:\jsdk1 jsdk1.4.2\bin\ 6 3

4 Instalación J2ME Sun Java Wireless Toolkit Descripción: Entorno para compilar y generar.jar. y.jad. incluye emuladores Descarga: ://java.sun.com/products/sjwtoolkit/download-2_3.html sun_java_wireless_toolkit-2_3 2_3-beta-windows.exe (Admite bluetooth,, multimedia, API 3D, posicionamiento, ) Instalación: n: Ejecutar el instalador y seleccionar destino: c:\wtk23 7 Primer Programa: Hola Mundo A continuación n se va a realizar el primer programa: HolaMundo Primero se compilará y ejecutará en el PC en un emulador Después s se enviará al móvil m y se ejecutará en él. Los pasos son los siguientes: 1. Con un editor de texto escribir el programa de la transparencia siguiente. Guardarlo como HolaMundo.java 8 4

5 Primer Programa: Código C y explicación import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVHolaMundo extends MIDlet implements CommandListener { private Display pantalla ; private TextBox texto1 ; private Command salir; public DBVHolaMundo() { pantalla = Display.getDisplay(this); // Devuelve un manejador de la pantalla salir = new Command("Salir", Command.SCREEN, 1); // Crea un nuevo comando para Salir texto1 = new TextBox("Hola Mundo", "Mi primer MIDlet", 40, 0); // Crea un cuadro de texto texto1.addcommand(salir); // Añade el comando al cuadro de texto texto1.setcommandlistener(this); // Indica que la gestión de evento se hace en esta clase public void startapp() { // Se ejecuta al comenzar la aplicación pantalla.setcurrent(texto1); // Muestra en la pantalla el texto y el comando public void pauseapp() { // Se ejecuta si se interrumpe la aplicación public void destroyapp(boolean unconditional) { // Se ejecuta al terminar public void commandaction(command c, Displayable displayable) { // Gestiona los eventos if (c == salir) { // Si el evento es pulsar el botón salir, termina destroyapp(false); notifydestroyed(); 9 Primer Programa: Proyecto 2. Abrir el programa Ktoolbar (c:\j2me j2me\wtk21\bin) 1. Seleccionar New Project Esto crea la siguiente estructura en c:\j2me j2me\wtk23\apps\holamundo Hay que guardar en src el código c (.java) (HolaMundo.java( anterior) En classes se guardarán n los (.class class) En bin se guardarán n los ficheros que hay que enviar al móvil m (.jad y.jar. jar) 10 5

6 Primer Programa: Generación 2. Ktoolbar 2. Compilar/Enlazar el código c con el botón Build 11 Primer Programa: Ejecución n en emulador 2. Ktoolbar 3. Seleccionar el emulador en el desplegable Device 4. Ejecutar mediante el botón Run Siguiendo estos pasos se pueden probar todos los programas que se realicen en el emulador. El siguiente paso será pasar el programa al teléfono 12 6

7 Primer Programa: Preparación n para el móvilm 2. Ktoolbar 5. Editar datos del proyecto: (Project( Project Settings Required) Nombre del proveedor Nombre del perfil. Por defecto es MIDP-2.0. Si el teléfono sólo es compatible con MIDP-1.0 es IMPRESCINDIBLE cambiarlo. (Por ejemplo, para el Nokia 3650) 6. Generar los fichero.jad. y.jar. jar: Project Package Package Create Package 7. Los 2 ficheros a enviar al teléfono son: HolaMundo.jad HolaMundo.jar,, guardados en c:\j2me j2me\wtk21\apps\holamundo\bin y 13 Primer Programa: Envío o al teléfono bluetooth 3. Enviar los 2 ficheros al teléfono por bluetooth 1. Instalar dispositivo bluetooth en PC (Como ejemplo se explicarán n los pasos para el dispositivo Bluetooth 3Com) 2. Arrancar en el PC el Bluetooth Connection Manager (o programa similar que traiga el Bluetooth) 3. Encender en el teléfono el bluetooth (Normalmente: Conexiones Bluetooth Bluetooth Activar) 4. Si todo va bien el PC verá el teléfono. Con el botón n derecho sobre el icono seleccionar enviar archivo 5. Seleccionar los 2 ficheros HolaMundo.jad y HolaMundo.jar y enviarlos al teléfono 14 7

8 Primer Programa: Envío o al teléfono bluetooth 3. Enviar los 2 ficheros al teléfono por bluetooth 6. En el teléfono se recibirán n 2 mensajes. Uno por cada fichero. Aceptarlos. 7. En el menú mensajes Buzon de entrada del teléfono Abrir el fichero HolaMundo.jad.. Aparecerá un mensaje como: Instalar HolaMundo 1.0 suministrado por David Bueno? 8. Donde el nombre de la aplicación, la versión n y el suministrador son los que se hayan seleccionado al editar los datos del proyecto 9. Si la instalación n es correcta, se podrá ejecutar la aplicación n en el menú del teléfono Aplicaciones Hola Mundo 15 Primer Programa: Envío o al teléfono infrarrojos NOKIA: Si se pasan los ficheros directamente no pueden ejecutarse Es necesario descargar el instalar la aplicación: NOKIA PC Suite Se puede descargar de (seleccionando el teéfono y las aplicaciones para éste) 16 8

9 Primer Programa: Envío o al teléfono serie/usb SIEMENS: Conectar el teléfono al cable serie o usb Es necesario descargar el instalar la aplicación: Siemens Data Suite Se puede descargar de (seleccionando el teéfono y las aplicaciones para éste) Después s aparecerá el teléfono como una carpeta y habrá que copiar los ficheros.jad. y.jar. en la carpeta /java/jam jam/holamundo 17 Primer Programa: Envío o al teléfono por Web Se necesita un servidor Web accesible desde el exterior Dentro de la UMA es necesario tener abierto el puerto 80 en los servicios centrales de Informática En el servidor web habrá que configurar 2 tipos MIME: text/vnd.sun.j2me.app-descriptor application/java-archive En algunos móviles m será suficiente con descargar el.jar. En lo que no sea suficiente, habrá que descargar el.jad. pero modificando la linea URL de la siguiente forma: Antes MIDlet-Jar-URL: DBVMijar.jar Después jad jar MIDlet-Jar-URL:

10 Interfaz de Usuario en J2ME Hay 3 formas como un usuario puede interactuar con las aplicaciones Command.- Son acciones que se asocian a los botones que el usuario pulsa en el dispositivo para realizar alguna tarea Screen.- Interfaz de alto nivel con alertas, formularios, cuadros de texto, radiobuttons, checkbox,, listas similares a las utilizadas en HTML Canvas.- Interfaz de bajo nivel en la que el usuario trabaja a nivel de pixel,, utilizadas para aplicaciones como juegos 19 IU: Display Class La pantalla del dispositivo se asocia a un objeto Display Un MIDlet está asociado a un único objeto Display En este objeto se pueden mostrar objetos de tipo Displayable (Screen y Canvas) Displayable Screen Alert List Form TextBox Canvas GameCanvas Javax.microedition.lcdui Javax.microedition.lcdui.game 20 10

11 IU: Display Class La referencia al objeto Display se obtiene normalmente en el constructor o en startapp() aunque se declare como atributo de la clase public class NombreClase { Private Display pantalla; Public void startapp() { pantalla= Display.getDisplay(this); Se pueden tener varios objetos de tipo Displayable pero sólo uno (aunque puede ser compuesto como un form) que se muestre en el Display.. Para asociarlo a la pantalla se utiliza setcurrent y se puede cambiar cuando se quiera TextBox cuadrotexto; cuadrotexto=new TextBox( titulo, contenido,30,textfield.any); pantalla.setcurrent(cuadrotexto); 21 IU: Command Class Son acciones que se asocian a botones del dispositivo. Los posibles tipos son: Command.BACK Command.CANCEL Command.EXIT Command.HELP Command.ITEM Command.OK Command.SCREEN Command.STOP Ir a la pantalla anterior Cancelar la operación actual Terminar la aplicación Mostrar ayuda Asocia una acción a un elemento de la pantalla Aceptar Acción genérica para comandos específicos de la aplicación Para parar la operación actual Aunque existan todos esos tipos en realidad no influye el hecho de elegir uno u otro salvo en la posición n en la que aparecerá en pantalla Para crear una nuevo objeto Command 3 parámetros (texto, tipo, prioridad [0 es la máxima] m xima]): Command miok; Miok=new Command( Aceptar, Command.OK,0) 22 11

12 IU: Command Class Para añadir a adir el Command al display Pantalla.addCommand(miok); Para asociar una acción n a un Command hay que implementar la interfaz CommandListener public class MiClase extends MIDlet implements CommandListener { public void commandaction(command c, Displayable displayable) { if (c == quitar) { destroyapp(false); notifydestroyed(); elseif(c==miok) { Como ejemplo un programa con 2 cuadros de texto, uno de los cuales es una ayuda, en total hay 3 command asociados a las operaciones de salir de la aplicación, ayuda y volver (salir de la ayuda) 23 Programa: DBVCommands 24 12

13 Programa: DBVCommands import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVCommands extends MIDlet implements CommandListener { private Display pantalla ; private TextBox tintro,tayuda ; private Command salir, ayuda, volver; public DBVCommands () { pantalla = Display.getDisplay(this); // Preparando la pantalla principal tintro = new TextBox("Mis Comandos", "Puedes salir o elegir ayuda", 40, 0); salir = new Command("Salir", Command.EXIT, 0); ayuda = new Command("Ayuda",Command.HELP,1); tintro.addcommand(salir); tintro.addcommand(ayuda); tintro.setcommandlistener(this); // Preparando pantalla de ayuda tayuda = new TextBox("Ayuda", "Para salir debe regresar :-)", 40, 0); volver=new Command("Volver",Command.BACK,1); tayuda.addcommand(volver); tayuda.setcommandlistener(this); public void startapp() { pantalla.setcurrent(tintro); public void pauseapp() { 25 Programa: DBVCommands public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable displayable) { if (c == salir) { destroyapp(false); notifydestroyed(); else if (c==ayuda) { pantalla.setcurrent(tayuda); else if (c==volver) { pantalla.setcurrent(tintro); 26 13

14 IU: Screen:Alertas Las alertas son cuadros de dialogo que avisan al usuario de algún n problema, confirman alguna acción n del usuario, o muestran un recordatorio en la pantalla Hay varios tipos predefinidos AlertType.ALARM, AlertType.CONFIRMATION, AlertType.ERROR, AlertType.INFO, AlertType.WARNING El constructor de la alerta tiene 4 parámetros: título, t tulo, texto, imagen, tipo Alert mialerta; mialerta=new Alert( Titulo, Texto de la alerta, null, AlertType.CONFIRMATION); Las alertas pueden ser: Modales. Permanecen hasta que el usuario realce alguna acción mialerta.settimeout(alert.forever); Temporales. Se cierran pasado algunos segundos mialerta.settimeout(5000); // Espera 5 segundos 27 IU: Screen:Alertas Por defecto aparecen acciones Command asociadas a las alertas, aunque pueden definirse nuevas con addcommand para personalizar los resultados Para mostrar la alerta se cambia el display como siempre pantalla.setcurrent(mialerta); Cuando la alerta se cierra se vuelve a la pantalla anterior Si se quiere que al cerrar la alerta se pase a otra pantalla se utiliza un segundo parámetro de setcurrent pantalla.setcurrent(mialerta,siguientepantalla); 28 14

15 IU: Screen:Formularios Los formularios permiten recoger datos del usuario En un formulario se pueden incluir derivados de la clase Item ChoiceGroup, CustomItem, DateField,, Gauge, ImageItem, Spacer, StringItem, TextField Form miform; miform=new Form( Título"); Se añaden a aden elementos al formulario con Append TextField usuario; usuario=new TextField("usuario","",10,TextField.ANY); miform.append(usuario); A continuación n un ejemplo de un formulario que pide un nombre de usuario y una contraseña. a. Utiliza una alerta para mostrar el nombre leído 29 Programa: DBVAcceso 30 15

16 Programa: DBVAcceso import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVAcceso extends MIDlet implements CommandListener { private Display pantalla ; private Form flogin ; private Alert confirmacion; private TextField usuario; private TextField passwd; private Command salir,aceptar; private String cad; public DBVAcceso () { pantalla = Display.getDisplay(this); // Preparando la pantalla principal flogin=new Form("Control Acceso"); usuario=new TextField("usuario","",10,TextField.ANY); passwd=new TextField("contraseña","",10,TextField.ANY TextField.PASSWORD); aceptar = new Command("Enviar", Command.OK, 0); salir = new Command("Salir", Command.EXIT, 0); flogin.append(usuario); flogin.append(passwd); flogin.addcommand(aceptar); flogin.addcommand(salir); flogin.setcommandlistener(this); // Alerta de confirmacion de datos confirmacion= new Alert ("Confirmación","", null, AlertType.CONFIRMATION); confirmacion.settimeout(alert.forever); 31 Programa: DBVAcceso public void startapp() { pantalla.setcurrent(flogin); public void pauseapp() { public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable displayable) { if (c == salir) { destroyapp(false); notifydestroyed(); else if (c==aceptar) { cad="bienvenido al sistema " + this.usuario.getstring(); confirmacion.setstring(cad); pantalla.setcurrent(confirmacion); 32 16

17 IU: Screen: : Formularios: Imágenes Para trabajar con imágenes hay que hacerlo en formato.png El programa Paint de Windows guarda cualquier imagen en este formato Hay que guardar las imágenes en la carpeta res que genera J2ME Wireless Toolkit (WT) al crear un proyecto La referencia a la imagen se hace con esta carpeta como raiz /. Es decir, una imagen dentro de esta carpeta se referencia /imagen.png Una imagen en res/imagenes se referencia /imágenes/ genes/imagen.png Las imágenes se añadira adirán n al fichero.jar. (lo hace WT) 33 IU: Screen: : Formularios: Imágenes Una objeto imagen se declara y crea: Image mimagen; mimagen=image.createimage("/nombre.png"); Es importante crear la imagen en un try....catch por si no se encuentra try { // Ejemplo de imagen en formulario mimagen=image.createimage("/nombre.png"); catch (java.io.ioexception error) { Alert alerta=new Alert("Error","No se pueda cargar la imagen",null,alerttype.error); alerta.settimeout(5000); pantalla.setcurrent(alerta); 34 17

18 IU: Screen: : Formularios: Imágenes Para usarla en una alerta se pondrá como 3 er parámetro en el constructor de la alerta intro=new Alert( Titulo", Texto...",mimagen,AlertType.INFO); Para usarla en un formulario hay que crear un ImageItem imagenit=new ImageItem(null,mimagen,ImageItem.LAYOUT_CENTER,"Davilin"); principal.append(imagenit); En el siguiente ejemplo se carga una imagen en una alerta que dura 3 segundos y después s se muestra un formulario con otra imagen 35 Programa: DBVImagenes 3 segs

19 Programa: DBVImagenes (1/3) import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVImagenes extends MIDlet implements CommandListener { private Alert intro; private Display pantalla ; private Form principal ; private Command salir; private Image imagen2,imagen1; private ImageItem imagenit; private String cad; public DBVImagenes() { pantalla = Display.getDisplay(this); // Preparando la pantalla principal principal=new Form("Imagenes"); salir = new Command("Salir", Command.EXIT, 0); principal.addcommand(salir); principal.setcommandlistener(this); Programa: DBVImagenes (2/3) // Creación de la imagen try { // Ejemplo de imagen en formulario imagen2=image.createimage("/david2.png"); imagenit=new ImageItem(null,imagen2,ImageItem.LAYOUT_CENTER,"Davilin"); principal.append(imagenit); catch (java.io.ioexception error) { Alert alerta=new Alert("Error","No se pueda cargar la imagen",null,alerttype.error); alerta.settimeout(5000); pantalla.setcurrent(alerta); // Preparacion de la pantalla de bienvenida try { // Ejemplo de imagen en alerta imagen1=image.createimage("/david1.png"); intro=new Alert("Bienvenido", "Bienvenido a mi programa\ncargando...",imagen1,alerttype.info); intro.settimeout(3000); catch (java.io.ioexception error) { Alert alerta=new Alert("Error","No se pueda cargar la imagen",null,alerttype.error); alerta.settimeout(5000); pantalla.setcurrent(alerta); 38 19

20 Programa: DBVImagenes (3/3) public void startapp() { pantalla.setcurrent(intro,principal); public void pauseapp() { public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable displayable) { if (c == salir) { destroyapp(false); notifydestroyed(); 39 IU: Screen:Formularios:ChoiceGroup Permite crear botones de tipo radio y checkbox. Hay 3 tipos Choice.EXCLUSIVE Choice.MULTIPLE Choice.IMPLICIT Para crear las selecciones: Botones Radio Botones Checkbox Menú miradio=new ChoiceGroup("Mi Radio",Choice.EXCLUSIVE); miradio.append("opcion1",null); // 2º parámetro es una imagen miradio.append("opcion2",null); principal.append(miradio); Para procesar elemento seleccionado en radio: i=miradio.getselectedindex(); mensaje=new StringItem("",miradio.getString(i)+"\n"); Para procesar elementos seleccionados en check: for (i=0;i<micheck.size();i++) { if (micheck.isselected(i)){ mensaje=new StringItem("",micheck.getString(i)+"\n"); principal.append(mensaje); 40 20

21 Programa: DBVChoice 41 Programa: DBVChoice (1/3) import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVChoice extends MIDlet implements CommandListener { private ChoiceGroup miradio, micheck, milista; private Command procesaradio, procesacheck, salir; private Display pantalla ; private Form principal ; private String cad; public DBVChoice() { pantalla = Display.getDisplay(this); // Preparando la pantalla principal principal=new Form("Imagenes"); salir = new Command("Salir", Command.EXIT, 0); procesaradio = new Command("Ver Radio", Command.SCREEN, 0); procesacheck = new Command("Ver Check", Command.SCREEN, 0); principal.addcommand(salir); principal.addcommand(procesaradio); principal.addcommand(procesacheck); principal.setcommandlistener(this); // Radio miradio=new ChoiceGroup("Mi Radio",Choice.EXCLUSIVE); miradio.append("opcion1",null); miradio.append("opcion2",null); principal.append(miradio); 42 21

22 Programa: DBVChoice (2/3) // Checkbox micheck=new ChoiceGroup("Mi Check",Choice.MULTIPLE); micheck.append("check1",null); micheck.append("check2",null); principal.append(micheck); public void startapp() { pantalla.setcurrent(principal); public void pauseapp() { public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable displayable) { int i; StringItem mensaje; if (c == salir) { destroyapp(false); notifydestroyed(); 43 Programa: DBVChoice (3/3) else if (c==procesaradio) { i=miradio.getselectedindex(); mensaje=new StringItem("",miradio.getString(i)+"\n"); principal.append(mensaje); else if (c==procesacheck){ for (i=0;i<micheck.size();i++) { if (micheck.isselected(i)){ mensaje=new StringItem("",micheck.getString(i)+"\n"); principal.append(mensaje); 44 22

23 IU: Screen:Ticker Permite mostrar un scroll horizontal. Se puede asociar a cualquier clase derivada de Screen Para crearlo y asociarlo, por ejemplo a un formulario cad=new String("Soy un texto que se desplaza por la pantalla"); miticker=new Ticker(cad); principal.setticker(miticker); Para modificar su valor miticker.setstring( Texto nuevo del ticker"); A continuación n un ejemplo que tiene ticker y un radio y muestra en el ticker información n adicional sobre el significado del radio 45 Programa: DBVTicker 46 23

24 Programa: DBVTicker (1/2) import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVTicker extends MIDlet implements CommandListener, ItemStateListener { private ChoiceGroup miradio; private Command salir; private Display pantalla ; private Form principal ; private String cad; private Ticker miticker; public DBVTicker() { pantalla = Display.getDisplay(this); // Preparando el ticker cad=new String("Soy un texto que se desplaza por la pantalla"); miticker=new Ticker(cad); // Preparando la pantalla principal principal=new Form("Formulario"); principal.setticker(miticker); // Se asocia el ticker al formulario salir = new Command("Salir", Command.EXIT, 0); principal.addcommand(salir); principal.setcommandlistener(this); // Radio miradio=new ChoiceGroup("Mi Radio",Choice.EXCLUSIVE); miradio.append("opcion1",null); miradio.append("opcion2",null); principal.append(miradio); principal.setitemstatelistener(this); // Listener que se llama si cambia el radio 47 Programa: DBVTicker (2/2) public void startapp() { pantalla.setcurrent(principal); public void pauseapp() { public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable displayable) { if (c == salir) { destroyapp(false); notifydestroyed(); public void itemstatechanged(item item) { // Listener de RadioButton int i; if (item==miradio) { i=miradio.getselectedindex(); if (i==0) { // Dependiendo del radio elegido se cambia en texto del ticker miticker.setstring("la Opcion primera es muy buena"); else { miticker.setstring("elegir la 2 te dara buena suerte"); else { miticker.setstring("no se ha elegido miradio"); 48 24

25 IU: Canvas y GameCanvas Canvas es la clase básica b para trabajar con la pantalla a bajo nivel: Dibujar pixels, lineas,, figuras, etc. GameCanvas mejora Canvas incluyendo carga de Imágenes, Sprites, TiledLayers y un mejor control de los botones del teléfono Estas clases son la utilizada para hacer los juegos Java que han hecho tan populares los móvilesm La programación n de juegos se convierte en algo mucho más m s sencillo que en cualquier otra plataforma El programador no tiene que preocuparse de problemas clásicos como: Refresco de pantalla, doble buffering,, colisiones, gestión n de capas o mapas Las clases anteriores se encargan de todo el trabajo sucio 49 IU: GameCanvas Las aplicaciones no suelen utilizar directamente GameCanvas, sino que heredan de esta clase Como mínimo hay dos clases: Una para el midlet principal y otra para la clase que hereda de GameCanvas El juego suele ejecutarse en una hebra independiente con el siguiente bucle principal // Dentro de la clase que hereda de GameCanvas public void run() { Graphics g = getgraphics(); while (jugando == true) { colision(); // Controla colisiones leeteclado(); // Lee acciones del usuario dibujapantalla(g); // Dibuja la escena actual try { Thread.sleep(retraso); // Retraso entre iteraciones catch (InterruptedException ie) { 50 25

26 IU: GameCanvas: Lectura de teclado Para leer de teclado es necesario leer el estado de las teclas con: int keystates = getkeystates(); Hay varias constantes en GameCanvas para cada tecla: DOWN_PRESSED, LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED, FIRE_PRESSED, GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED, GAME_D_PRESSED // Metodo para gestionar el teclado private void leeteclado() { int keystates = getkeystates(); // Izquierda if ((keystates & LEFT_PRESSED)!= 0) { // Acciones cuando pulse izquierda // Derecha if ((keystates & RIGHT_PRESSED)!=0 ) { // Acciones cuando pulse izquierda 51 IU: GameCanvas: Dibujar en la pantalla Suele haber un método m en el que se realiza todo el refresco de pantalla: imágenes, lineas, sprites, fondos Para hacer cualquier dibujo se utiliza un objeto Graphics que puede obtenerse dentro de GameCanvas con Graphics g=getgraphics(); Algunos de las acciones posibles: g.setcolor(0xbbecf3); // Selecciona el color de lo siguiente que se dibuje g.fillrect(0, 0, ancho, alto); // Dibuja un rectangulo relleno con ese color g.setcolor(0x0000ff); g.drawline(0,100,200,0); // Dibuja una línea // Para escribir un texto, se indican las coordenadas de la pantalla y la // alineación del texto en la pantalla g.drawstring( Hola", anchop, altop, Graphics.RIGHT Graphics.BOTTOM); 52 26

27 IU: GameCanvas: : Sprites La clase Sprite maneja los personajes del juego Carga del Sprite en un fichero con 5 posiciones Se indica el tamaño o de un elemento Sprite babosin; Image imagen; imagen = Image.createImage("/babosin.png"); babosin = new Sprite (image,16,24); Fichero: babosin.png 53 IU: GameCanvas: : Sprites Para mostrar el sprite hay que seleccionar la posición n de pantalla También n cual de los frames se va a mostrar Y cómo c quiere mostrarse: Su posición n original, invertida o girada en x grados Sprite.TRANS_NONE, Sprite.TRANS_MIRROR, Sprite.TRANS_ROT90, Sprite.TRANS_ROT180, Sprite.TRANS_ROT270, Sprite.TRANS_MIRROR_ROT90, Sprite.TRANS_MIRROR_ROT180, Sprite.TRANS_MIRROR_ROT270 Para dibujar se necesita un Graphics g que puede obtenerse con: Graphics g = getgraphics(); babosin.setframe(3); // Selecciona el frame (4ª imagen de las 5) babosin.settransform(sprite.trans_none); // Muestra la imagen en su posición original babosin.setposition(100,100); // Colocará en la pantalla el sprite en la posición (100,100) babosin.paint(g); // Dibuja el Sprite

28 Programa: DBVGameCanvas Se va a mostrar en un programa los elementos relacionados con GameCanvas vistos hasta este punto Se dibujaran algunas líneas l y rectángulos y se moverá un Sprite por la pantalla Se va a utilizar una clase para el midlet (DBVGameCanvas), que será muy similar en todos los programas que usen GameCanvas Por otro lado, se va a utilizar una clase que hereda de GameCanvas (BabosinCanvas)) sobre la que recae la mayor parte de la acción Esta última tiene una hebra que es iniciada por la clase principal 55 Programa: DBVGameCanvas Cursores 56 28

29 Programa: DBVGameCanvas (1/2) import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DBVGameCanvas extends MIDlet implements CommandListener { private Display display; private BabosinCanvas babosincanvas; private Command salir; public void startapp() { try { display = Display.getDisplay(this); babosincanvas= new BabosinCanvas(); babosincanvas.start(); // Inicia la hebra del canvas salir = new Command("Salir", Command.EXIT, 0); // Boton para salir babosincanvas.addcommand(salir); babosincanvas.setcommandlistener(this); display.setcurrent(babosincanvas); catch (Exception ex) { System.out.println(ex); public void pauseapp() { 57 Programa: DBVGameCanvas (2/2) public void destroyapp(boolean unconditional) { if (babosincanvas!= null) { babosincanvas.stop(); // Para la hebra del canvas public void commandaction(command c, Displayable s) { if (c.getcommandtype() == Command.EXIT) { System.gc(); // Llama al recolector de basura destroyapp(true); notifydestroyed(); 58 29

30 Programa: DBVGameCanvas-BabosinCanvas BabosinCanvas (1/4) import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; public class BabosinCanvas extends GameCanvas implements Runnable { private boolean jugando; // Indica que la partida esta en curso private long retraso; // Retraso entre cada ciclo private int babosinx, babosiny; // Coordenadas del personaje private int ancho; // Ancho de la pantalla private int alto; // Alto de la pantalla private int posbabosin; // babosin actual del personaje (0-4) private Sprite babosin; // Sprites del personaje // Constructor public BabosinCanvas() throws Exception { super(true); ancho = getwidth(); alto = getheight(); babosinx = ancho / 2; babosiny = alto / 2; retraso = 20; // Carga el personaje principal Image image = Image.createImage("/babosin.png"); babosin = new Sprite (image,16,24); 59 Programa: DBVGameCanvas-BabosinCanvas BabosinCanvas (2/4) // Crea y arranca la hebra del juego public void start() { jugando = true; Thread t = new Thread(this); t.start(); public void stop() { jugando = false; // Bucle principal del juego public void run() { Graphics g = getgraphics(); while (jugando == true) { leeteclado(); // Lee acciones del usuario dibujapantalla(g); // Dibuja la escena actual try { Thread.sleep(retraso); catch (InterruptedException ie) { 60 30

31 Programa: DBVGameCanvas-BabosinCanvas BabosinCanvas (3/4) // Metodo para gestionar el teclado private void leeteclado() { int keystates = getkeystates(); if ((keystates & LEFT_PRESSED)!= 0) {// Izquierda babosinx = Math.max(0, babosinx - 1); posbabosin=(posbabosin+1)%5; babosin.setframe(posbabosin); babosin.settransform(sprite.trans_none); if ((keystates & RIGHT_PRESSED)!=0 ) {// Derecha babosinx = Math.min(ancho-16, babosinx + 1); posbabosin=(posbabosin+1)%5; babosin.setframe(posbabosin); babosin.settransform(sprite.trans_mirror); if ((keystates & UP_PRESSED)!= 0) {// Arriba babosiny = Math.max(0, babosiny - 1); babosin.setframe(0); if ((keystates & DOWN_PRESSED)!=0) {// Abajo babosiny = Math.min(alto-24,babosinY + 1); babosin.setframe(4); 61 Programa: DBVGameCanvas-BabosinCanvas BabosinCanvas (4/4) // Dibuja la pantalla private void dibujapantalla(graphics g) { // lineas montañas g.setcolor(0xbbecf3); g.fillrect(0, 0, getwidth(), getheight()); g.setcolor(0x0000ff); g.drawline(0,getheight()/2,getwidth()/2,0); g.drawline(getwidth()/2,0,getwidth(),getheight()/2); g.setcolor(0xf5d58d); g.drawline(0,(getheight()/4)*3,getwidth(),(getheight()/4)*3); // dibuja el personaje babosin.setposition(babosinx,babosiny); babosin.paint(g); flushgraphics(); // actualiza la pantalla 62 31

32 IU: GameCanvas: TiledLayer Deco.png + = Image tileimages = Image.createImage("/deco.png"); // Carga la imagen con los elementos de la pantalla TiledLayer decorado = new TiledLayer(40,24,tileImages,8,8); // reserva espacio para la capa del decorado // Selecciona los 40x24 elementos del decorado según su posición en deco.png // 0 indica que no hay nada en esa posición int[] map= {42,41,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,42,41,1,2, 264,264,264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,264, 264,264,264,0,0,248,249,250,251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,264, // Guarda los elementos del mapa en la posición de pantalla que corresponda for (int i=0; i < mapa.length; i++) { int columna = i % 40; // Se divide por el número de elementos de una fila=numero de columnas int fila = i/40; decorado.setcell(columna,fila,mapa[i]); // Actualiza 1 a 1 todas las celdas 63 IU: GameCanvas: TiledLayer Para mover un TiledLayer se utiliza setposition decorado.setposition(decox,decoy); Para dibujarlo se puede utilizar el método m paint de TiledLayer o un LayerManager que gestiona todas las capas private LayerManager controlcapas; // Declaración del LayerManager controlcapas=new LayerManager(); // Crea el control de capas controlcapas.append(decorado); // Añade cada capa que se quiera controlar Controlcapas.paint(g,0,0); // Dibuja todas las capas controladas a partir de (x,y) en la pantalla 64 32

33 IU: GameCanvas: TiledLayer+Sprite+Image + + = // Dibuja la imagen de fondo g.drawimage(fondo,decox/4,decoy/4,0); decorado.setposition(decox,decoy); // Actualiza el decorado controlcapas.paint(g,0,0); // Pinta el decorado // Actualiza el personaje babosin.setposition(babosinx,babosiny); babosin.paint(g); // pinta el personaje 65 IU: GameCanvas: : Scroll Fondos TRUCO En muchos juegos de plataformas los escenarios pueden estar a diferentes distancias Los escenarios más m s lejanos deben moverse a menor velocidad que los cercanos para producir un movimiento real Es fácil f conseguir ese efecto dándole d al primer plano unas coordenadas (x,y( x,y) ) y a cada plano más m s lejano se le asignará un (x/distancia,y distancia,y/distancia) En el ejemplo anterior el fondo se desplaza 4 veces más m lentamente que el decorado principal // Dibuja la imagen de fondo g.drawimage(fondo,decox/4,decoy/4,0); 66 33

34 IU: GameCanvas: Colisiones Se puede mirar en cada momento si un Sprite choca con otro Sprite, Imagen o TiledLayer Las colisiones se pueden hacer a nivel de pixel (pixellevel=true) o aproximando la imagen a un rectangulo (pixellevel=false) // Mira si el sprite babosin choca con la imagen situada en x,y choca=babosin.collideswith(imagen,x,y,pixellevel); // Mira si el sprite babosin choca con la otro Sprite choca=babosin.collideswith(enemigo,pixellevel); // Mira si el sprite babosin choca con un tiledlayer choca=babosin.collideswith(escenario,pixellevel); 67 Programa: DBVBabosin En el siguiente programa se combina todo lo relacionado con GameCanvas: Sprites,, Imágenes, TiledLayer, LayerManager,, Control de Teclado Con esto se podría a hacer prácticamente cualquier juego en 2D Se va a utilizar para el midlet la misma clase que en (DBVGameCanvas) Por otro lado, se va a utilizar una clase que hereda de GameCanvas (BabosinCanvas)) en la que se desarrolla el juego El programa carga una imagen de fondo, un tiledlayer y un sprite y cuando se mueven los cursores, el sprite se desplaza por el fondo que también n se desplaza, detectando posibles colisiones 68 34

35 Programa: DBVBabosin Con los cursores se desplaza el personaje, el escenario y el fondo 69 Programa: DBVBabosin (1/6) import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; public class BabosinCanvas extends GameCanvas implements Runnable { private boolean jugando; // Indica que la partida esta en curso private long retraso; // Retraso entre cada ciclo private int babosinx, babosiny; // Coordenadas del personaje private int antx,anty; // Coord. anterior del personaje (para colisiones) private int decox,decoy; // Coordenadas del decorado private int antdecox,antdecoy; private int ancho; // Ancho de la pantalla private int alto; // Alto de la pantalla private int posbabosin; // sprite actual del personaje (0-4) private LayerManager controlcapas; private int ultmov; // Ultimo movimiento: 0 nada 1 izq 2 dch 3 arr 4 aba private TiledLayer decorado; // Escenario private boolean cayendo=true; private Image fondo; private Sprite babosin; // Sprite del personaje principal 70 35

36 Programa: DBVBabosin (2/6) // Constructor public BabosinCanvas() throws Exception { // Llama al constructor de GameCanvas, al ser true, desabilita // el manejo estandar del teclado super(true); // Lee las coordedanas del dispositivo ancho = getwidth(); alto = getheight(); // Coloca el muñeco en una posición que no choque babosinx = 100; babosiny = 30; // Inicializa las coordenadas del decorado a la esquina sup,izq de la pantalla decox=0; decoy=0; // inicializa coordenadas anteriores (para deshacer movimientos si choca) antdecox=decox; antdecoy=decoy; antx=babosinx; anty=babosiny; ultmov=0; retraso = 5; decorado=inidecorado(); // Carga e inicializa el decorado fondo= Image.createImage("/fondo2.png"); // Carga imagen de fondo controlcapas=new LayerManager(); // Crea el control de capas controlcapas.append(decorado); Image image = Image.createImage("/babosin.png"); // Carga el personaje principal babosin = new Sprite (image,16,24); // Fin del constructor 71 Programa: DBVBabosin (3/6) // Controla las colisiones private void colision() { if (!babosin.collideswith(decorado, false)) { // Si babosin colisiona con el decorado se vuelve a su estado anterior decox=antdecox;decoy=antdecoy; babosinx=antx; babosiny=anty; // Dibuja todo private void dibujapantalla(graphics g) { g.setcolor(0xffffff); // Dibuja un fondo blanco g.fillrect(0, 0, getwidth(), getheight()); g.drawimage(fondo,decox/4,decoy/4,0); // Dibuja la imagen de fondo decorado.setposition(decox,decoy); // Actualiza el decorado controlcapas.paint(g,0,0); // Pinta el decorado babosin.setposition(babosinx,babosiny); // Actualiza el personaje babosin.paint(g); // pinta el personaje g.setcolor(0x000000); // Pone el color a negro if (babosin.collideswith(decorado, true)) {// Texto que indica si choca o no g.drawstring("choca", ancho, alto, Graphics.RIGHT Graphics.BOTTOM); else { g.drawstring("nochoca", ancho, alto, Graphics.RIGHT Graphics.BOTTOM); // refresca los graficos flushgraphics(); 72 36

37 Programa: DBVBabosin (4/6) // Inicializa el decorado que es un TiledLayer private TiledLayer inidecorado() throws Exception { // Carga la imagen con los elementos de la pantalla Image tileimages = Image.createImage("/deco.png"); // reserva espacio para la capa del decorado TiledLayer tiledlayer = new TiledLayer(40,24,tileImages,8,8); // Selecciona los 40x24 elementos del decorado segun su posicion den deco.png // 0 indica que no hay nada en esa posicion int[] mapa= { 42,41,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,1,2,42,41,42,41,1,2, 264,264,264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,264, 264,264,264,0,0,248,249,250,251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,264, ; // Guarda los elementos del mapa en la posicion de pantalla que corresponda for (int i=0; i < mapa.length; i++) { int columna = i % 40; int fila = i/40; tiledlayer.setcell(columna,fila,mapa[i]); // Actualiza 1 a 1 todas las celdas return tiledlayer; 73 Programa: DBVBabosin (5/6) // Maneja la entrada de teclado private void leeteclado() { int estadoteclado; // se guardan los valores para restaurar si choca antdecox=decox; antdecoy=decoy; antx=babosinx; anty=babosiny; estadoteclado = getkeystates(); // Lee el estado del teclado babosin.setframe(0); // selecciona el 1er sprite de babosin // Mira si se ha movido a la Izquierda if ( (estadoteclado & LEFT_PRESSED)!= 0) { //mueve a la izquierda el decorado y babosin decox+=1; babosinx = Math.max(0, babosinx - 1); // Cambia el sprite de babosin tambien posible con babosin.nextframe() posbabosin=(posbabosin+1)%5; babosin.setframe(posbabosin); babosin.settransform(sprite.trans_none); ultmov=1; // Derecha if ( (estadoteclado & RIGHT_PRESSED)!=0 ) { // Igual que izquierda salvo // babosin.settransform(sprite.trans_mirror); 74 37

38 Programa: DBVBabosin (6/6) // Bucle principal del juego public void run() { Graphics g = getgraphics(); while (jugando == true) { colision(); // Controla colisiones leeteclado(); // Lee acciones del usuario dibujapantalla(g); // Dibuja la escena actual try { Thread.sleep(retraso); catch (InterruptedException ie) { // Crea y arranca la hebra del juego public void start() { Thread t; jugando = true; t= new Thread(this); t.start(); // para la ejecucion public void stop() { jugando = false; 75 RMS (Record Management System) El almacenamiento en J2ME se realiza a través s de RMS No existen ficheros RMS permite guardar registros numerados El contenido de un registro es un array de bytes La gestión n de todo lo que haya en el registro debe hacerla el usuario. Por ejemplo, si se guarda una cadena y un número n será el usuario el encargado de escribirlo y leerlo correctamente convirtiendo los datos a arrays de bytes La clase RecordStore es la encargada de la manipulación n de los registros Id registro 1 2 contenido valor

39 RMS: RecordStore RecordStore permite realizar operaciones con los registros del tipo: Crear, Insertar, Borrar,... Todas las operaciones que se realizan con RecordStore necesitan estar en un try....catch Para crear o abrir: RecordStore recordstore; // Declaración try { // Abre un registro llamado contador y lo crea si es necesario (2º parametro a true) recordstore = RecordStore.openRecordStore("contador", true ); catch (Exception error) { alert = new Alert("Error Creando", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); En adelante se pondrán n las sentencias sin el try aunque debe estar 77 RMS: RecordStore: : Escritura Simple El caso más m s simple de registros es aquel en el que se escribe un único tipo de datos Para escribir un dato, por ejemplo, un String hay que convertirlo a un array de bytes Después s se añade a ade con addrecord: String outputdata = "1"; // Cadena que se va a escribir byte[] byteoutputdata = outputdata.getbytes(); // Conversión de la cadena // Se añade la array de bytes al registro desde el inicio (0) y con longitud (length) recordstore.addrecord(byteoutputdata, 0, byteoutputdata.length); 78 39

40 RMS: RecordStore: : Lectura Simple Para leer se utiliza getrecord que necesita como mínimo m el número n de registro a leer aunque tiene varias versiones Puede ser necesario saber cuantos registros hay en el RecordStore,, puede consultarse con getnumrecords Por ejemplo para leer todas las cadenas almacenadas en el RecordStore: // Crea un array de bytes para leer los datos byte[] byteinputdata = new byte[30]; int length = 0; // Almacenará el número de bytes leidos String cadena=new String(""); // Bucle para los todos los registros que haya (getnumrecords) for (int x = 1; x <= recordstore.getnumrecords(); x++) { // Lee el registro de la posición x en el array de bytes al inicio (0) length = recordstore.getrecord(x, byteinputdata, 0); cadena=cadena + " "+ new String(byteInputData); 79 RMS: RecordStore: : Borrado y Cierre Para cerrar el RecordStore y dejar de usarlo recordstore.closerecordstore(); Para borrar todo el RecordStore (método static) RecordStore.deleteRecordStore("contador"); Para borrar un registro concreto, se indica su posición recordstore.deleterecord(3); 80 40

41 RMS: RecordStore: : Emulador En el Wireless Toolkit puede accederse a los RecordStore que se almacenan en: C:\WTK22\appdb\ Para cada teléfono emulado hay una carpeta con su nombre, por ejemplo para el DefaultColorPhone C:\WTK22\appdb\DefaultColorPhone Cada recordset es precedido por run_by_class_storage_ Es decir si tenemos un RecordStore llamado contador, que se ha usado en el teléfono por defecto se encontrará en: C:\WTK22\appdb\DefaultColorPhone\run_by_class_storage_contador.db Este fichero binario puede visualizarse con un editor hexadecimal o borrarse si la aplicación n empieza a dar problemillas ;-); 81 Programa: DBVRMSSimple Para probar los elementos básicos b de registros se va a mostrar el programa DBVRMSSimple Este programa crea un RecordStore llamado contador en el que la primera vez escribe la cadena 1 Y posteriormente escribe 2, 3,,... Dispone de un menú que permite Crear, Insertar, Ver, Borrar y Salir 82 41

42 Programa: DBVRMSSimple Crear Incrementar Incrementar Ver Salir 83 Programa: DBVRMSimple (1/5) import javax.microedition.rms.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; import java.lang.integer; public class DBVRMSSimple extends MIDlet implements CommandListener { private Display display; private Alert alert; private Form form; private Command salir,crear,ver,incrementar,borrar; private RecordStore recordstore = null; public DBVRMSSimple() { display = Display.getDisplay(this); salir = new Command("Salir", Command.SCREEN,4); // Definición del menú incrementar = new Command("Incrementar", Command.SCREEN, 2); crear=new Command("Crear", Command.SCREEN, 1); ver=new Command("Ver",Command.SCREEN,3); borrar=new Command("Borrar",Command.SCREEN,3); form = new Form("Record"); form.addcommand(salir); form.addcommand(crear); form.addcommand(incrementar); form.addcommand(ver); form.addcommand(borrar); form.setcommandlistener(this); 84 42

43 Programa: DBVRMSimple (2/5) public void startapp() { display.setcurrent(form); public void pauseapp() { public void destroyapp( boolean unconditional ) { public void commandaction(command command, Displayable displayable) { // Para cada opción del menú se realiza una acción sobre el RecordSet if (command == salir) {// Para cerrar el RecordStore try { recordstore.closerecordstore(); catch (Exception error) { alert = new Alert("Error Cerrando", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); destroyapp(true); notifydestroyed(); else if (command==crear) {// Para crear el RecordStore e insertar el valor 1 try { recordstore = RecordStore.openRecordStore("contador", true ); catch (Exception error) { alert = new Alert("Error Creando", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); 85 Programa: DBVRMSimple (3/5) try { String outputdata = "1"; byte[] byteoutputdata = outputdata.getbytes(); recordstore.addrecord(byteoutputdata, 0, byteoutputdata.length); catch ( Exception error) { alert = new Alert("Error Escribiendo 1", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); else if (command == incrementar) {// Para añadir nuevos valores try { // Se mira cuantos elementos hay y se guarda ese valor+1 en el RecordStore String outputdata = (new Integer(recordstore.getNumRecords()+1)).toString(); byte[] byteoutputdata = outputdata.getbytes(); recordstore.addrecord(byteoutputdata, 0, byteoutputdata.length); catch ( Exception error) { alert = new Alert("Error Escribiendo", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); else if (command == ver) { // Muestra todos los registros 86 43

44 Programa: DBVRMSimple (4/5) try { byte[] byteinputdata = new byte[30]; int length = 0; String titulo=null; String cadena=new String(""); for (int x = 1; x <= recordstore.getnumrecords(); x++) { length = recordstore.getrecord(x, byteinputdata, 0); titulo="leyendo" + (new Integer(x)).toString(); cadena=cadena + " "+ new String(byteInputData); // Se muestra el resultado en un alert alert = new Alert(titulo, cadena, null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); catch (Exception error) { alert = new Alert("Error Leyendo", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); 87 Programa: DBVRMSimple (5/5) else if (command == borrar) { // Elimina el registro completo if (RecordStore.listRecordStores()!= null) { try { RecordStore.deleteRecordStore("contador"); catch(exceptionerror) { alert = new Alert("Error Borrando", error.tostring(), null, AlertType.WARNING); alert.settimeout(alert.forever); display.setcurrent(alert); 88 44

45 RMS: Datos complejos Si se quieren guardar en un Registro datos compuestos la mejor forma es crear para escritura: un ByteArrayOutputStream DataOutputStream Y el simétrico para lectura ByteArrayInputStream DataInputStream Estas estructuras permiten almacenar datos de distintos tipos La clase DataOutputStream tiene métodos para escribir todo tipo de elementos: boolean Byte Float Int String writeboolean writebyte writefloat writeint writeutf 89 RMS: Escritura de datos complejos Si se quiere por ejemplo escribir un número y un String // Creación de variables necesarias byte[] outputdata; ByteArrayOutputStream outputstream=new ByteArrayOutputStream(); DataOutputStream outputdatastream=new DataOutputStream(outputStream); outputdatastream.writeint(numero); // Escritura del número outputdatastream.writeutf(nombre); // Escritura del nombre outputdatastream.flush(); // Enviar los datos al flujo outputdata=outputstream.tobytearray(); // Convierte los datos a un array de bytes recordstore.addrecord(outputdata, 0, outputdata.length); // Escribe los datos en el registro outputdatastream.close(); outputstream.close(); 90 45

46 RMS: Lectura de datos complejos Si se quiere leer un número n y un String // Creación de variables necesarias byte[] byteinputdata = new byte[30]; ByteArrayInputStream inputstream; DataInputStream inputdatastream; inputstream=new ByteArrayInputStream(byteInputData); // Crea el ByteArray inputdatastream=new DataInputStream(inputStream); // Crea el DataInputStream int length = records.getrecord(i, byteinputdata, 0); // Lee el registro i-esimo numero= inputdatastream.readint(); // Lee el número cadena= inputdatastream.readutf()); // Lee la cadena inputstream.reset(); // Limpia el buffer para poder seguir leyendo más registros El resto de las operaciones de creación n y borrado son iguales que para el caso de datos simples A continuación n un ejemplo en el que se añaden a aden pares (nombre, puntos) a una lista de records 91 Programa: DBVRMSRecords Insertar Listado Salir 92 46

47 Programa: DBVRMSRecords (1/5) import javax.microedition.rms.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; public class DBVRMSRecords extends MIDlet implements CommandListener { private Alert alert; private Command salir,listado,nuevorecord, insertar, eliminar; private Display pantalla; private Form principal,frecord; private TextField fnombre,fpuntos; private RecordStore records = null; public DBVRMSRecords() { pantalla = Display.getDisplay(this); // Preparacion de la pantalla para poner records frecord=new Form("Nuevo Record"); fnombre=new TextField("Nombre:","",30,TextField.ANY); fpuntos=new TextField("Puntos:","",30,TextField.NUMERIC); insertar=new Command("Insertar", Command.SCREEN,0); frecord.append(fnombre); frecord.append(fpuntos); frecord.addcommand(insertar); frecord.setcommandlistener(this); // Preparando la pantalla principal principal=new Form("Administracion"); salir = new Command("Salir", Command.EXIT, 0); nuevorecord = new Command("Nuevo Record", Command.SCREEN, 0); listado = new Command("Listado", Command.SCREEN, 0); eliminar=new Command("Eliminar Todo", Command.SCREEN,0); 93 Programa: DBVRMSRecords (2/5) principal.addcommand(salir); principal.addcommand(nuevorecord); principal.addcommand(listado); principal.addcommand(eliminar); principal.setcommandlistener(this); public void startapp() { cargarrecords(); mostrarrecords(); pantalla.setcurrent(alert,principal); public void pauseapp() { public void destroyapp( boolean unconditional ) { public void commandaction(command command, Displayable pantallaable) { if (command == salir) { // Acción para terminar if (records!=null) { cerrarrecords(); destroyapp(true); notifydestroyed(); else if (command==nuevorecord) {// Añadir un nuevo record pantalla.setcurrent(frecord); else if (command==listado) { // Ver todos los records mostrarrecords(); 94 47

Programación para sistemas en red IV. Tomar información desde la pantalla

Programación para sistemas en red IV. Tomar información desde la pantalla Tomar información desde la pantalla Para tomar información desde un formulario desarrollado en J2ME, se utiliza la función: getstring(). Ejemplo: Si tenemos instanciado el siguiente TextField: nombre =

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES

INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES CONTENIDO: J2ME. Arquitectura Conceptos Básicos APIs Principales MIDLets Herramientas de Desarrollo Ejemplo BIBLIOGRAFÍA: [Gal] Java a Tope: J2ME.

Más detalles

>> Programación de dispositivos móviles.

>> Programación de dispositivos móviles. >> Programación de dispositivos móviles. Nicolás Álvarez S. nalvarezs@vtr.net Juan Monsalve Z. jmonsalve@elo.utfsm.cl Tópicos a tratar Repaso de conceptos de programación. Conceptos básicos de Java Plataforma

Más detalles

Programación para sistemas en red IV. Conceptos básicos II

Programación para sistemas en red IV. Conceptos básicos II Conceptos básicos II Maquina virtual de java (JVM): Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un programa nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar

Más detalles

Person IP CRM Manual MOBILE

Person IP CRM Manual MOBILE Manual MOBILE División Informática BuscPerson Telecomunicaciones : Manual MOBILE 0.- Introducción 3 0.1 Configuración de los terminales 3 0.2 Acceso de Usuarios 3 1.- Funcionalidades CRM 5 1.1 Agenda del

Más detalles

INSTALACIÓN DE MEDPRO

INSTALACIÓN DE MEDPRO 1 Estimado Cliente: Uno de los objetivos que nos hemos marcado con nuestra nueva plataforma de gestión, es que un cliente pueda instalar MedPro y realizar su puesta en marcha de forma autónoma. Siga paso

Más detalles

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico) MANUAL DE AYUDA SAT Móvil (Movilidad del Servicio Técnico) Fecha última revisión: Abril 2015 INDICE DE CONTENIDOS INTRODUCCION SAT Móvil... 3 CONFIGURACIONES PREVIAS EN GOTELGEST.NET... 4 1. INSTALACIÓN

Más detalles

Programación para sistemas en red IV. Manejo de gráficos

Programación para sistemas en red IV. Manejo de gráficos Manejo de gráficos La interfaz gráfica de bajo nivel: Cuando se diseñó J2ME, los ingenieros de Sun ya sabían que una de las claves para que su tecnología tuviera éxito era que tenía que ser capaz de hacer

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana EXCEL PRÓLOGO Microsoft Excel es una hoja de cálculo de gran capacidad y fácil uso. Excel no solo es una hoja de calculo, sino también tiene capacidad para diseñar bases de datos (listas) de forma totalmente

Más detalles

Java, JavaME y el entorno Eclipse - Ejercicios

Java, JavaME y el entorno Eclipse - Ejercicios Java, JavaME y el entorno Eclipse - Ejercicios Índice 1 Hola ME!...2 2 Clases...2 3 Métodos y campos de la clase... 3 4 Métodos estáticos... 4 5 Librerías opcionales (*)...4 6 Temporizadores (*)... 5 1.

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

J2ME (Java to Micro Edition)

J2ME (Java to Micro Edition) CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors J2ME (Java to Micro Edition) (Seminaris de CASO) Autors José Antonio Carmona Gallardo Valentí Moncunill González Introducción

Más detalles

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 Servicio de Informática y Comunicaciones Para poder diseñar un formulario y que éste nos envíe los resultados a nuestro correo electrónico, necesitamos

Más detalles

Servicio Webmail. La fibra no tiene competencia

Servicio Webmail. La fibra no tiene competencia Servicio Webmail La fibra no tiene competencia Contenido 1. INTERFAZ WEBMAIL 3 2. BARRA SUPERIOR 3 3. CORREO 3 3.1. Barra de herramientas de correo 4 3.2. Sección carpetas de correo 9 3.3. Sección de contenidos

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

MANUAL INSTALACIÓN DE SUGARMINI PARA SUGAR CRM

MANUAL INSTALACIÓN DE SUGARMINI PARA SUGAR CRM MANUAL INSTALACIÓN DE SUGARMINI PARA SUGAR CRM SugarMini Instalación/Configuración de SugarMini......2 El servidor SugarMini......2 Requisitos del servidor SugarMini......2 Instalación del servidor SugarMini......2

Más detalles

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicios - Persistencia en Android: ficheros y SQLite Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base

Más detalles

Correo Electrónico: Webmail: Horde 3.1.1

Correo Electrónico: Webmail: Horde 3.1.1 CONTENIDOS: PAGINA Qué es Webmail?. 2 Acceder a Webmail. 2 Instilación del Certificado UCO. 4 Instilación Certificado I.explorer. 4 Instilación Certificado Firefox. 7 Opciones Webmail. 8 Opciones Información

Más detalles

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows Qué es Recuperación? Recuperación del Panel de control proporciona varias opciones que pueden ayudarle a recuperar el equipo de un error grave. Nota Antes de usar Recuperación, puede probar primero uno

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Elección Libre Unidad académica: Programación de dispositivos móviles con Java Ubicación: Noveno Semestre. Clave:

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google Para probar nuestras aplicaciones Google nos proporciona un emulador de dispositivos conocido como AVD (Android Virtual Devices).

Más detalles

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX...

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX... INDICE 1 Configuración previa...2 1.1 Configuración Internet Explorer para ActiveX...2 1.2 Problemas comunes en sistema operativo Windows...8 1.2.1 Usuarios con sistema operativo Windows XP con el Service

Más detalles

Manual para el uso del Correo Electrónico Institucional Via Webmail

Manual para el uso del Correo Electrónico Institucional Via Webmail Manual para el uso del Correo Electrónico Institucional Via Webmail Accesando la pagina de webmail DIFSON El primer paso va a ser entrar a la página de internet donde se encuentra el correo de DIFSON.

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Calculadora virtual HP Prime

Calculadora virtual HP Prime Calculadora virtual HP Prime Windows es una marca comercial del grupo de empresas Microsoft en los EE. UU. La información contenida en el presente documento está sujeta a cambios sin previo aviso. Las

Más detalles

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4 CAPÍTULO 4. Formas alternativas de escribir un texto........ Columnas Para fijar columnas se posiciona el Punto de Inserción donde se desee que comiencen las columnas, o bien se selecciona el texto que

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

STARBOARD DE HITACHI

STARBOARD DE HITACHI STARBOARD DE HITACHI Curso Escolar 2010-2011 Colegio San Vicente de Paúl. Laredo. Cantabria Ponente: José Manuel Rincón Septiembre de 2010 ÍNDICE DE CONTENIDOS Índice de contenidos. / 2 Cómo abrir el software

Más detalles

Vamos a ver las dos formas básicas de arrancar PowerPoint.

Vamos a ver las dos formas básicas de arrancar PowerPoint. Iniciar Powerpoint Vamos a ver las dos formas básicas de arrancar PowerPoint. 1) Desde el botón Inicio situado, normalmente, en la esquina inferior izquierda de la pantalla. Coloca el cursor y haz clic

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA Proveedores PLATAFORMA FACTURACIÓN ELECTRÓNICA PARA PROVEEDORES DE LA JUNTA DE COMUNIDADES DE CASTILLA LA MANCHA. Índice 1. INTRODUCCIÓN... 3 2. ACCESO A LA PLATAFORMA

Más detalles

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4. TABLAS A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4.1. Principales Elementos Al momento de generar y diseñar una tabla es importante

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Kepler 8.0 USO DEL ERP

Kepler 8.0 USO DEL ERP Kepler 8.0 USO DEL ERP CONTENIDO 1. Introducción... 3 2. Inicio del sistema... 3 3. Pantalla inicial... 4 4. Barra de menús... 5 a) Menú archivo... 5 b) Menú edición... 6 c) Menú Ver... 6 5. Ayuda... 8

Más detalles

2_trabajar con calc I

2_trabajar con calc I Al igual que en las Tablas vistas en el procesador de texto, la interseccción de una columna y una fila se denomina Celda. Dentro de una celda, podemos encontrar diferentes tipos de datos: textos, números,

Más detalles

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER 2011 2012 COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER WWW.FAUBELL.COM vicente@faubell.com Hasta ahora hemos visto una pequeña introducción a la creación de las páginas web. No te preocupes por

Más detalles

Trabajar con diapositivas

Trabajar con diapositivas Trabajar con diapositivas INFORMÁTICA 4º ESO POWERPOINT Una vez creada una presentación podemos modificarla insertando, eliminando, copiando diapositivas, Insertar una nueva diapositiva.- Para insertar

Más detalles

Manual del Programa Conecta 3V Para Teléfonos Móviles.

Manual del Programa Conecta 3V Para Teléfonos Móviles. Manual del Programa Conecta 3V Para Teléfonos Móviles. Realizado por Xuitec S.L. Versión del documento 1.0 Página 1 de 18 Índice: 1. Introducción...3 2. Instalación y puesta en marcha...4 3. Menú Principal.

Más detalles

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows 1 APUNTES DE WINDOWS Unidad 1: Windows y sus Elementos Elementos de Windows Escritorio: Es la pantalla que aparece cuando se inicia una sesión con Windows, desde aquí es de donde se administra el computador.

Más detalles

SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL. Copyright Ministerio de Sanidad y Consumo

SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL. Copyright Ministerio de Sanidad y Consumo SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL Copyright Ministerio de Sanidad y Consumo 1. MENU PRINCIPAL DE SINAC... 3 1.1. MÓDULO ABRIR... 5 1.2. MÓDULO DE ENTRADAS... 6 1.2.1.

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

SMS Gestión. manual de uso

SMS Gestión. manual de uso SMS Gestión manual de uso índice qué es SMS Gestión 2 acceso al servicio 3 01 acceso con la clave de servicios de Orange 4 02 acceso personalizado 6 02.1 cómo personalizar su acceso a la aplicación 7 02.2

Más detalles

Content Manager 2 Guía del usuario

Content Manager 2 Guía del usuario Content Manager 2 Guía del usuario Lea esta guía para aprender a utilizar Content Manager 2 para buscar, adquirir, descargar e instalar actualizaciones y contenido extra en su Becker PND. 1.) Cómo instalar

Más detalles

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas. Formularios TEMA: FORMULARIOS. 1. INTRODUCCIÓN. 2. CREACIÓN DE FORMULARIOS. 3. INTRODUCIR DATOS EN UN FORMULARIO. 4. MODIFICAR UN FORMULARIO 5. MANERAS DE GUARDAR UN FORMULARIO. 6. IMPRIMIR FORMULARIOS.

Más detalles

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L-5 08330 Premià de Mar Barcelona Tel. (93) 754 90 19 Fax 93 752 35 18 marketing@t2app.

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L-5 08330 Premià de Mar Barcelona Tel. (93) 754 90 19 Fax 93 752 35 18 marketing@t2app. T3-Rondas V 1.1 1 Indice 1 Requisitos mínimos 3 2 Instalación 3 2.1 Instalación del software 3 2.2 Instalación del terminal 4 3 Configuración Inicial 4 3.1 Crear terminales 5 3.2 Crear puntos de lectura

Más detalles

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html Introducción En esta primera parte del taller iremos viendo paso a paso como poner a punto todo tu entorno de trabajo para poder empezar cuanto antes a desarrollar tu primera aplicación Android para luego

Más detalles

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. Sala de sistemas, Video proyector, Guías RECURSOS ACTIVIDADES PEDAGÓGICAS

Más detalles

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Introducción y objetivos De modo muy resumido Internet es una red que interconecta redes de ordenadores. Conectándose

Más detalles

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE LA APLICACIÓN HELP DESK CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE) 1. Introducción. TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE) El Explorador es una herramienta indispensable en un Sistema Operativo ya que con ella se puede organizar y controlar los contenidos (archivos

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

Página Personal. Cómo guardar mi página personal con FileZilla

Página Personal. Cómo guardar mi página personal con FileZilla Página Personal Cómo guardar mi página personal con FileZilla Este manual de servicio es propiedad de Telefónica de España SAU, queda terminante prohibida la manipulación total o parcial de su contenido

Más detalles

MANUAL DE USUARIO Mensa-Red Empresas (OUTLOOK 2002, 2003 y XP)

MANUAL DE USUARIO Mensa-Red Empresas (OUTLOOK 2002, 2003 y XP) Bienvenido a la ayuda de Mensa-Red Empresas edición e-mail Vodafone. Pulse sobre las distintas opciones para resolver sus dudas. i.conectar (autenticación) ii.envío de mensajes iii.recepción de mensajes

Más detalles

GUÍA DE USUARIO DEL CORREO

GUÍA DE USUARIO DEL CORREO REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN DIRECCIÓN GENERAL DE LA OFICINA DE ADMINISTRACIÓN Y SERVICIOS DIVISIÓN DE SOPORTE TÉCNICO Y FORMACIÓN AL USUARIO GUÍA DE

Más detalles

Práctica 3: Introducción a Word

Práctica 3: Introducción a Word Departament d Enginyeria i Ciència dels Computadors Práctica 3: Introducción a Word B12. Informática I. Curso 2001/2002 Profesores: Julio Pacheco Juanjo Murgui Raul Montoliu Mª Carmen Ortiz Octubre 2001

Más detalles

Visor de presupuestos en Android

Visor de presupuestos en Android Visor de presupuestos en Android NEODATA tiene el placer y el orgullo de darle la bienvenida al nuevo Visor de presupuestos, esta herramienta fue diseñada pensando en la necesidad de acceder a presupuestos

Más detalles

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO INDICE DE CONTENIDOS 1) INTRODUCCIÓN... 3 2) OPERACIÓN CON LA PDA... 3 3) GOTELGEST.NET PDA... 3 1) PANTALLA DE INICIO... 3 2) NUEVO DOCUMENTO... 3 3) EDITAR

Más detalles

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA (Tico 2.0) EDITOR TICO La idea principal que motivo este proyecto fue trasladar la definición tradicional de tablero de comunicación en

Más detalles

Elementos de Microsoft Word

Elementos de Microsoft Word Contenido 1. Distintas formas de iniciar Word 2007... 2 2. Ayuda de Word... 2 3. Las barras de herramientas... 3 4. Funcionamiento de las pestañas. Cómo funcionan?... 4 5. Personalizar barra de acceso

Más detalles

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Instalación del programa PSPP y obtención de una distribución de frecuencias. Práctica 2. Instalación del programa PSPP y obtención de una distribución de frecuencias. Con esta práctica instalaremos el programa PSPP. El programa es un software específico para el análisis estadístico

Más detalles

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS Organizar la información: El explorador de Windows... 1 Introducción... 1 Explorador de Windows... 2 Ejercicio práctico del explorador de Windows... 5

Más detalles

MANUAL DE AYUDA MÓDULOS 2011 MACOS

MANUAL DE AYUDA MÓDULOS 2011 MACOS MANUAL DE AYUDA MÓDULOS 2011 MACOS Agencia Tributaria Centro de Atención Telefónica Departamento de INFORMÁTICA TRIBUTARIA ÍNDICE MÓDULOS 2011 INTRODUCCIÓN...3 Requisitos previos. Máquina Virtual de Java...

Más detalles

Ethernet IP INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez ETHERNET/IP 1.

Ethernet IP INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez ETHERNET/IP 1. Ethernet IP INDICE 1. INTRODUCCIÓN 2. NETWORK CONFIGURATOR 3. EJEMPLO DE APLICACIÓN a. CONFIGURACIÓN DEL HARDWARE b. CONFIGURACIÓN MEDIANTE NETWORK CONFIGURATOR c. TRANSFERENCIA DE LA CONFIGURACIÓN Y VERIFICACIÓN

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

RELACIÓN DE PRÁCTICAS DEL TEMA 2

RELACIÓN DE PRÁCTICAS DEL TEMA 2 RELACIÓN DE PRÁCTICAS DEL TEMA 2 PRÁCTICA S.O. (I): Crear un fichero con Wordpad con tus datos personales y guardarlo en c:/temp Crear una carpeta con tu nombre en c:/temp (ej. C:/temp/pepita) Copiar el

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor

Más detalles

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA Eurowin 8.0 SQL Manual de la FIRMA DIGITALIZADA Documento: me_firmadigitalizada Edición: 02 Nombre: Manual de la Firma Digitalizada en Eurowin Fecha: 19-05-2011 Tabla de contenidos 1. FIRMA DIGITALIZADA

Más detalles

1 MANUAL DE INSTALACIÓN

1 MANUAL DE INSTALACIÓN 1 MANUAL DE INSTALACIÓN El software necesario para la ejecución de las aplicaciones se incluye en el apartado software del cd del proyecto. Aún así, a continuación se explica como poder descargar los programas

Más detalles

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS 1) EL PEQUEÑO EDITOR El Bloc de notas de Windows XP es un básico editor de texto con el que podemos escribir anotaciones, de hasta 1024 caracteres por línea y

Más detalles

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08 PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet Revisión 1.1 Fecha 2006-08 Índice 1. Acceder 2. Menú 3. Gestión Básica 3.1 Añadir 3.2 Editar 3.3 Eliminar 3.4 Eliminación de registros

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Manual de ayuda. Índice: 1. Definición.. Pág. 2 2. Conceptos básicos... Pág. 3 3. Navegación.. Pág. 5 4. Operativa más habitual.. Pág.

Manual de ayuda. Índice: 1. Definición.. Pág. 2 2. Conceptos básicos... Pág. 3 3. Navegación.. Pág. 5 4. Operativa más habitual.. Pág. Manual de ayuda Índice: 1. Definición.. Pág. 2 2. Conceptos básicos... Pág. 3 3. Navegación.. Pág. 5 4. Operativa más habitual.. Pág. 13 Página 1 de 16 1. DEFINICIÓN El Broker Bankinter es una aplicación

Más detalles

Manual de usuario Software PC Editor de Rutas. inled

Manual de usuario Software PC Editor de Rutas. inled Manual de usuario Software PC Editor de Rutas. Manual de usuario Software PC Editor de Rutas. Agregar una Ruta 01 Texto Fijo e Icono 04 Guardar Archivo Creado 06 Modelo de Itinerario 07 Edición de Icono

Más detalles

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

Más detalles

El Escritorio. En el escritorio tenemos iconos que permiten abrir el programa correspondiente.

El Escritorio. En el escritorio tenemos iconos que permiten abrir el programa correspondiente. El Escritorio Primera pantalla que nos aparecerá una vez se haya cargado el Sistema Operativo con el cual vamos a trabajar, en nuestro caso será el escritorio de Windows XP. Este escritorio es muy similar

Más detalles

En este manual vamos a explicar cómo se configura el software gratuito y en español que va incluido con todos los controles de acceso ANVIZ.

En este manual vamos a explicar cómo se configura el software gratuito y en español que va incluido con todos los controles de acceso ANVIZ. WWW.TODOELECTRONICA.COM MANUAL: Configuración Software control de acceso ANVIZ En este manual vamos a explicar cómo se configura el software gratuito y en español que va incluido con todos los controles

Más detalles

Guía de Aprendizaje No. 1

Guía de Aprendizaje No. 1 MICROSOFT WORD Fundamentos básicos, ejecutar Word, su ventana y sus barras de herramientas Objetivos de la Guía de Aprendizaje No. 1 Obtener fundamentos básicos sobre Procesador de Texto Microsoft Word

Más detalles

Creando una webquests

Creando una webquests Creando una webquests 1. LO PRIMERO EL PROGRAMA Para crear paginas web necesitamos el software apropiado. Hay muchas formas y programas para hacerlo, pero por su facilidad de uso y por ser software libre

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO 1. CATÁLOGO MANUAL DE USUARIO CATÁLOGO AHORA CATÁLOGO MANUAL DE USUARIO 1 1. Introducción AHORA Catálogo es una aplicación

Más detalles

SHARP TWAIN AR/DM. Guía del usuario

SHARP TWAIN AR/DM. Guía del usuario SHARP TWAIN AR/DM Guía del usuario Copyright 2001 - Sharp Corporation. Todos los derechos reservados. Queda prohibida la reproducción, adaptación o traducción sin previo consentimiento por escrito a menos

Más detalles

Windows Journal en dos patadas

Windows Journal en dos patadas Windows Journal en dos patadas Con el Windows Journal se pueden hacer muchas cosas, pero aquí vamos a aprender unas pocas: Conocer la interfaz y las herramientas. Escribir a mano (y borrar) en una nota

Más detalles

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la Objetivo: explotar la información eventual en línea, utilizando libros y hojas con una estructura inicial con opción a modificarse de acuerdo a la necesidad del usuario. Después de haber instalado la herramienta

Más detalles

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica Portal Del Emisor MANUAL DEL USUARIO Plataforma de Facturación Electrónica 1. Índice 1. Índice... 2 2. Descripción General... 3 2.1. Alcance... 3 2.2. Flujo de navegación... 4 2.3. Perfil del Usuario...

Más detalles

Java TM MicroEdition -Conceptos Básicos-

Java TM MicroEdition -Conceptos Básicos- Java TM MicroEdition -Conceptos Básicos- Pontificia Universidad Javeriana Computación Móvil 2008/01 Historia Enero 15, 1991: Green Project : Qué hacer a cerca de tanta variedad de dispositivos electrónicos?

Más detalles

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21. 1/21 Instalación Interfaz gráfico Requerimientos Proceso de instalación Pantalla de login Pantalla principal Descripción de los frames y botones Programación de Backups Botones generales Botones de programación

Más detalles

Manual para la instalación del cliente de correo electrónico Mozilla Thunderbird.

Manual para la instalación del cliente de correo electrónico Mozilla Thunderbird. Manual para la instalación del cliente de correo electrónico Mozilla Thunderbird. A partir de enero del 2014 iris dejara de dar soporte al correo electrónico. El cliente de correo que lleva iris se ha

Más detalles

EMPLEO NTIC`S II SEGUNDO SEMESTRE

EMPLEO NTIC`S II SEGUNDO SEMESTRE UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CONTABILIDAD Y AUDITORIA EMPLEO NTIC`S II SEGUNDO SEMESTRE Ing. Luz Perez SEMESTRE MARZO JULIO 2009 EXCEL Excel es un programa del tipo Hoja de Cálculo que permite

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Entorno de Desarrollo - 1 -

Entorno de Desarrollo - 1 - Para la descarga de Java he optado por dirigirme a su propietario ORACLE para iniciar la grabación desde su página oficial: http://www.oracle.com/es/index.html donde seleccionamos Java 2 en el apartado

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Instrucciones de instalación de TrueCode

Instrucciones de instalación de TrueCode Gracias por su compra y las instrucciones que le guiara a través del proceso de instalación y puesta en marcha de su nuevo software. Se recomienda la lectura y las discusiones de los usuarios por favor

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles