Newsgroup: it.comp.java
Titolo: [J2ME] Caricare Sprite!

Salve a tutti, sto giocando un pochino con il j2me ma ho riscontrato da 
subito questo problema: il mio programmino carica un'immagine e permette 
di spostare lo sprite a destra o sinistra per un massimo di 10 volte, 
dopodiche' termina. (So che e' ultra-banale, ma e' per provare).
Questo e' il codice della classe principale:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
public class MondoSprite extends GameCanvas implements Runnable
{
     private Sprite sprite;
     private int currX;
     private int currY;
     private int height;
     private int width;
     public MondoSprite() throws Exception {
         super(true);
         height = getHeight();
         width  = getWidth();
         currX  = width / 2;
         currY  = height / 2;
         Image image = Image.createImage("nicotine.png");
         sprite = new Sprite(image);
         //sprite.setFrame(0);
     }
     public void start() {
         Thread t = new Thread(this);
         t.start();
     }
     public void run() {
         Graphics g = getGraphics();
         int i = 10;
         while(i > 0) {
             input();
             draw(g);
             i--;
         }
     }
     public void draw(Graphics g) {
         g.setColor(0xFFFFFF);
         g.fillRect(0, 0, getWidth(), getHeight());
         sprite.setPosition(currX, currY);
         //sprite.paint(g);
         flushGraphics();
     }
     public void input() {
         int keyState = getKeyStates();
         if ((keyState & LEFT_PRESSED) != 0) {
             currX--;
         }
         if ((keyState & RIGHT_PRESSED) != 0) {
             currX++;
         }
     }
}
E questo il codice della classe di prova:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MondoDemo extends MIDlet
{
     private Display display;
     public void startApp() {
         try {
             display = Display.getDisplay(this);
             MondoSprite mondo = new MondoSprite();
             mondo.start();
             display.setCurrent(mondo);
         } catch (Exception ex) {
             System.out.println(ex);
             ex.printStackTrace();
         }
     }
     public void pauseApp() {
     }
     public void destroyApp(boolean unconditional) {
         notifyDestroyed();
     }
}
La printStackTrace() mi da questo come output:
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 MondoSprite.<init>(+46)
	at MondoDemo.startApp(+15)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+266)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+116)
Dove sbaglio???! E dire che ho seguito per file e per segno il tutorial 
di un libro.
Grazie.
Asami.
ps. MondoSprite e MondoDemo li ho scelti come nomi perche' sono ancora 
stordito dai lavori di Jacopetti & Prosperi (rivisti di recente) (-:

 di un libro.
Per curiosita', di che libro si tratta?
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
Tutti quelli che credono nella psicocinesi, per favore alzino la mia mano.