Como importar codigo fuente a Netbeans

1,138 views
Skip to first unread message

Luis Renzi

unread,
Oct 27, 2006, 2:36:18 AM10/27/06
to solo...@googlegroups.com, Desarro...@gruposyahoo.com.ar
Hola, bueno, ahora les planteo un problema concreto que tengo cuando importo codigo fuente a Netbeans: para eso les adjunto el codigo que he utilizado.
 
A continuación les describos los pasos realizados:
 
Abro el Netbeans (4.1), voy a New project
        
Elijo Mobile Application : desactivo ¨Create Hello Midlet¨; dejo ¨set as Main Project¨.
 
En Project Name pongo: TinyAnimation
En Device Configuration lo dejo como esta…
Y pongo Finish
Me aparece el proyecto TinyAnimation con su default package en gris (desactivado).
 
Luego copio el archivo TinyAnimation.java junto con el archivo de imagen pacfamily.png dentro de la carpeta ¨src¨ de la carpeta ¨TinyAnimation¨ que genero el Netbeans.
Cierro y vuelvo abrir el proyecto. Ahora me figuran los archivos .java y .png: Renombre el package con el mismo nombre del proyecto, osea: TinyAnimation.
 
Luego voy a Properties del Proyecto, me posiciono en Midlet: y en
Midlet Name: pongo TinyAnimation
Midlet Class: TinyAnimation. TinyAnimation
Y en Midlet Icon: nada
 
Pongo denuevo Build Project y no me sale ningun error
 
Presiono Run Proyect y me muestra el emulador con la etiqueta TinyAnimation.
Marco select y me sale el siguiente error:
java.io.IOException
        at javax.microedition.lcdui.ImmutableImage.getImageFromStream(+15)
        at javax.microedition.lcdui.ImmutableImage.<init>(+20)
        at javax.microedition.lcdui.Image.createImage(+8)
        at TinyAnimation.AnimCanvas.loadImages(+7)
        at TinyAnimation.AnimCanvas.<init>(+71)
        at TinyAnimation.TinyAnimation.<init>(+21)
        at java.lang.Class.runCustomCode(+0)
        at com.sun.midp.midlet.MIDletState.createMIDlet(+19)
        at com.sun.midp.midlet.Selector.run(+22)
java.lang.NullPointerException:
        at TinyAnimation.AnimCanvas.paint(+87)
        at javax.microedition.lcdui.Canvas.callPaint(+80)
        at javax.microedition.lcdui.Display.repaint(+77)
        at javax.microedition.lcdui.Display.registerNewCurrent(+237)
        at javax.microedition.lcdui.Display.access$400(+6)
        at javax.microedition.lcdui.Display$DisplayAccessor.foregroundNotify(+46)
        at javax.microedition.lcdui.Display$DisplayManagerImpl.notifyWantsForeground(+152)
        at javax.microedition.lcdui.Display$DisplayManagerImpl.access$100(+6)
        at javax.microedition.lcdui.Display.setCurrentImpl(+115)
        at javax.microedition.lcdui.Display.setCurrent(+29)
        at TinyAnimation.TinyAnimation.startApp(+11)
        at javax.microedition.midlet.MIDletProxy.startApp(+7)
        at com.sun.midp.midlet.Scheduler.schedule(+270)
        at com.sun.midp.main.Main.runLocalClass(+28)
        at com.sun.midp.main.Main.main(+116)
 
 
Bueno, si alguien me puede decir que estoy haciendo mal les agredeceria enormemente.
 
Luis

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

TinyAnimation.java
pacfamily.png

Pablo Erba

unread,
Oct 27, 2006, 10:36:15 AM10/27/06
to solo...@googlegroups.com, Desarro...@gruposyahoo.com.ar
Luis, el error se da al intentar leer la imagen,

img=Image.createImage("/pacfamily.png");

como debes poner el full path desde el root de la aplicación, como en esta caso el paquete es TinyAnimation, deberias poner:

img=Image.createImage("/TinyAnimation/pacfamily.png");

como consejo, para las acciones sensibles de errores, usa

   try {                       
            img=Image.createImage( "/TinyAnimation/pacfamily.png");
        } catch (java.io.IOException exception) {

            // aqui puedes mandar una alerta para avisar que no se pudo cargar la imagen.


        }

 
saludos!
 

Pablo Erba

unread,
Oct 27, 2006, 10:44:08 AM10/27/06
to solo...@googlegroups.com, Desarro...@gruposyahoo.com.ar
Por cierto vi que estas usando este metodo para devolver la imagen:

private

Image loadImages() {

Image img=

null;

try {

img=Image.createImage(

"/pacfamily.png");

}

catch(Exception e) {

e.printStackTrace();

}

return(img);

}

yo lo reescribiria asi, para evitar que cada vez que se pide la imagen, la cargue nuevamente, en el caso que navegues por varios screen:

 

// variable de objeto

Image img;

metodo:

 

 

private

Image loadImages() {

if (img == null) // Si no existe en memoria, la crea

 

{

try {

img = Image.createImage(

"/TinyAnimation/pacfamily.png");

}

catch(Exception e) {

e.printStackTrace();

}

}

return(img); // Devuelve la existente o la nueva

 

}

 

saludos!

 

 

 



 
2006/10/27, Pablo Erba <pablo...@gmail.com>:



--


Pablo Erba
pablo...@gmail.com

crra...@gmail.com

unread,
Oct 27, 2006, 10:10:44 PM10/27/06
to soloJ2ME
Hola,

Igual es recomendable en el caso de J2ME trabajar son el paquete por
omisión (sin paquete) porque el paquete ocupa espacio adicional dentro
del jar.

Si estás en un proyeto nuevo ¿Por que no usar NetBeans 5.0?

Saludos,
Carlos

Luis Renzi

unread,
Oct 28, 2006, 1:30:35 AM10/28/06
to solo...@googlegroups.com
Si!, resulto!, pude ver la animación!.
Muchisimas Gracias por la ayuda!.

Saludos,
Luis

crra...@gmail.com escribió:

Carlos Rafael Ramirez

unread,
Oct 29, 2006, 12:59:02 PM10/29/06
to solo...@googlegroups.com
Excelente
Reply all
Reply to author
Forward
0 new messages