Showing posts with label proyecto. Show all posts
Showing posts with label proyecto. Show all posts

Thursday, November 27, 2008

BAJEMOS A ECHAR UN VISTAZO


INTERFACES DE BAJO NIVEL

Bueno, en las entregas anteriores hablamos de las interfaces de alto nivel; comentábamos que estas interfaces son de las más fáciles de implementar pues su presentación gráfica queda a cargo del dispositivo en que se ejecute la aplicación.
Esto nos permite ahorrar tiempo y esfuerzo, aunque en ocasiones será necesario tomar el control de la presentación, por ejemplo: Si lo que estamos desarrollando es un videojuego.

REGLA No. 1:
Antes de comenzar, es conveniente que establecer una regla : "Todas las pantallas que vayamos a crear usando las APIs de bajo nivel heredan de la clase Canvas".

Por esta razón, lo primero de todo es conocer a fondo esta clase y luego iremos profundizando en cada uno de los elementos que la componen.
La clase Canvas es la superclase de todas las pantallas que usan las APIs de bajo nivel, al igual que Screen lo era para las pantallas que usaban las APIs de alto nivel.

CONVIVENCIA PACIFICA:
Sin embargo, en la relación de APIs de alto y bajo nivel, no hay nada escrito, ésto es : "No existe ningún impedimento que nos permita usar en el mismo MIDlet pantallas tanto derivadas de Canvas como de Screen"

La clase Canvas permite manejar eventos de bajo nivel y dibujar cualquier cosa por pantalla. Es por ésa razón que se usa como base para la realización de juegos.

Esta clase posee un método abstracto paint() que debemos implementar de manera obligatoria (Por nuestra propia voluntad) y es la encargada de dibujar en la pantalla del dispositivo.


Veamos un ejemplo para irnos familiarizando:


BajoNivel.java


import java.io.IOException;
import javax.microedition.lcdui.*;
public class BajoNivel extends Canvas implements CommandListener {
private PBajoNivel midlet;
private Command salir;
private Image imgFondo, imgTriste;
public BajoNivel(PBajoNivel mid) {
try {
imgFondo = Image.createImage("/fondo.PNG");
imgTriste = Image.createImage("/triste.PNG");
} catch (IOException e) {
e.printStackTrace();
}
salir = new Command("Salir", Command.EXIT,1);
this.midlet = mid;
this.addCommand(salir);
this.setCommandListener(this);
}
public void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,0,0);
g.drawImage(imgFondo, 0, 0, 0);
g.drawImage(imgTriste, 40, 40, 0);
}
public void commandAction(Command c, Displayable d){
if (c == salir){
midlet.salir();
}
}
}



Esta rutina es la que nos mostrará en el dispositivo la pantalla, nótese que estamos utilizando dos imágenes fondo.PNG y triste.PNG, estos archivos los colocamos en el directorio de RES en nuestro proyecto.


Ahora veamos el código del MIDlet que lo mandará llamar.


PBajoNivel.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class PBajoNivel extends MIDlet {
private BajoNivel panCanvas;
private Display pantalla;
public PBajoNivel() throws Exception{
pantalla = Display.getDisplay(this);
panCanvas = new BajoNivel(this);
}
public void startApp() {
pantalla.setCurrent(panCanvas);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void salir(){
destroyApp(false);
notifyDestroyed();
}
}


Como se observa, PBajoNivel.java se limita a declarar un objeto pancanvas heredado de la clase BajoNivel.


Veamos dos ejemplos de ejecutar ésta aplicación en dos modelos distintos de cellular, a fin de que el lector pueda constatar la diferencia de despliegue entre uno y el otro.












Friday, November 7, 2008

INTERFAZ DE USUARIO

Interfaces Gráficas de Usuario de Alto Nivel



En esta entrega hablaremos de la interface gráfica de alto nivel, esta interfaz usa componentes tales como botones, cajas de texto, formularios, etc. Estos elementos son implementados por cada dispositivo y la finalidad de usar las APIs de alto nivel es su portabilidad. Al usar estos elementos, perdemos el control del aspecto de nuestra aplicación ya que la estética de estos componentes depende exclusivamente del dispositivo donde se ejecute. En cambio, usando estas APIs de alto nivel ganaremos un alto grado de portabilidad de la misma aplicación entre distintos dispositivos. Fundamentalmente, se usan estas APIs cuando queremos construir aplicaciones de negocios.

Monday, November 3, 2008

PONGAMOS A TRABAJAR AL FRAMEWORK

Creación de un proyecto en Eclipse




Desde el menú Window -> Open perspective -> Java




Empezamos con el wizard de creación de un proyecto desde el menú File -> New -> Project o bien pulsando sobre el botón que se ve en la imagen.




En la primera pantalla del wizard ponemos un nombre al proyecto y decidimos donde se guardará, por defecto se crea una carpeta con el nombre del proyecto dentro de eclipse_home en el directorio workspace.


Pulsamos "Next" para ir a la pantalla de configuración del classpath, del directorio donde se guardarán las clases generadas, si el proyecto que estamos creando depende de algún otro, etc.

























Una vez que se ha configurado el proyecto pulsamos "Finish" para terminarlo de crear.