Nokioteca [Nokia] Forum: [j2me] Problema Simulazione - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[j2me] Problema Simulazione

#1 L   GuglielmoS 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 10 agosto 2009
  • Cellulare:6220c

Inviato 29 ottobre 2009 - 18:53

Ciao a tutti, è da poco che sto sperimentando il linguaggio java nell'ambito della Micro Edition e mi stanno sorgendo già dei problemi, alcuni probabiblmente stupidi, che però in parte sono riuscito a risolvere, ma altri di cui non riesco a trovare la soluzione. In particolare ora sto seguendo la guida di html.it, e l'esempio dove si utilizzano i Canvas e si mostra una stringa con il tasto premuto, non riesco a simularlo con il WTK. Vi posto il codice che teoricamente dovrebbe funzionare.
A me viene restituita un eccezione che mi dice che la classe non è una midlet(Questo lo so anche io, ma il codice è quello e sulla guida dice che funziona).
Eccezione:
Unable to create MIDlet CanvasExample
java.lang.InstantiationException: Class not a MIDlet
	at com.sun.midp.midlet.MIDletState.createMIDlet(+66)
	at com.sun.midp.midlet.Selector.run(+22)

Codice Sorgente:
import javax.microedition.lcdui.*;
import java.io.*;

public class CanvasExample extends Canvas {

	private Image imgLol;
	private int width;
	private int height;
	private String lastKeyPressed;

	public CanvasExample() {
		lastKeyPressed = "Nessun tasto premuto";
		// Carico l'immagine
		try {
			imgLol = Image.createImage("/image.png");
			setFullScreenMode(true);
			width = getWidth();
			height = getHeight();
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}

	protected void paint(Graphics g) {
		g.setColor(0x00F);
		g.fillRect(0, 0, width, height);
		if (imgLol != null) {
			g.drawImage(imgLol, width/2, height/2, Graphics.VCENTER | Graphics.HCENTER);
		}
		g.setColor(0xFFF);
		g.drawString(lastKeyPressed, width/2, height - 10, Graphics.BASELINE | Graphics.HCENTER);
	}

	protected void keyPressed(int arg0) {
		switch (arg0) {
		  case KEY_NUM0:
			  lastKeyPressed = "Tasto 0 premuto!";
		  break;

		  case KEY_NUM1:
			  lastKeyPressed = "Tasto 1 premuto!";
		  break;

		  case KEY_NUM2:
			  lastKeyPressed = "Tasto 2 premuto!";
		  break;

		  case KEY_NUM3:
			  lastKeyPressed = "Tasto 3 premuto!";
		  break;

		  case KEY_NUM4:
			  lastKeyPressed = "Tasto 4 premuto!";
		  break;

		  case KEY_NUM5:
			  lastKeyPressed = "Tasto 5 premuto!";
		  break;

		  case KEY_NUM6:
			  lastKeyPressed = "Tasto 6 premuto!";
		  break;

		  case KEY_NUM7:
			  lastKeyPressed = "Tasto 7 premuto!";
		  break;

		  case KEY_NUM8:
			  lastKeyPressed = "Tasto 8 premuto!";
		  break;

		  case KEY_NUM9:
			  lastKeyPressed = "Tasto 9 premuto!";
		  break;
		}
		repaint();
	}	
}

0

#2 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7144
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 30 ottobre 2009 - 00:37

Imho, la guida si e' persa qualche pezzo per strada... "inscatola" tutto in una midlet e vedrai che girera' senza problema.
Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#3 L   GuglielmoS 

  • Newbie
  • Punto
  • Gruppo: Utente
  • Messaggi: 7
  • Iscritto: 10 agosto 2009
  • Cellulare:6220c

Inviato 30 ottobre 2009 - 15:21

Visualizza MessaggiIl.Socio, il 30/10/2009 - 00:37, ha scritto:

Imho, la guida si e' persa qualche pezzo per strada... "inscatola" tutto in una midlet e vedrai che girera' senza problema.

OK ho proseguito "inscatolando" il tutto in una midlet, ed ora funziona. Per chi fosse interessato ecco il codice:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;

public class CanvasExample extends MIDlet {

	private CanvasImage cImage;
	private Display display;

	public CanvasExample() {
		cImage = new CanvasImage();
		display = Display.getDisplay(this);
		display.setCurrent(cImage);
	}

	protected void startApp() throws MIDletStateChangeException {}
	protected void pauseApp() { notifyPaused(); }
	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}
}

class CanvasImage extends Canvas {

	private Image imgLol;
	private int width;
	private int height;
	private String lastKeyPressed;

	public CanvasImage() {
		lastKeyPressed = "Nessun tasto premuto";
		// Carico l'immagine
		try {
			imgLol = Image.createImage("/image.png");
			setFullScreenMode(true);
			width = getWidth();
			height = getHeight();
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}

	protected void paint(Graphics g) {
		g.setColor(0x00F);
		g.fillRect(0, 0, width, height);
		if (imgLol != null) {
			g.drawImage(imgLol, width/2, height/2, Graphics.VCENTER | Graphics.HCENTER);
		}
		g.setColor(0xFFF);
		g.drawString(lastKeyPressed, width/2, height - 10, Graphics.BASELINE | Graphics.HCENTER);
	}

	protected void keyPressed(int arg0) {
		switch (arg0) {
		  case KEY_NUM0:
			  lastKeyPressed = "Tasto 0 premuto!";
		  break;

		  case KEY_NUM1:
			  lastKeyPressed = "Tasto 1 premuto!";
		  break;

		  case KEY_NUM2:
			  lastKeyPressed = "Tasto 2 premuto!";
		  break;

		  case KEY_NUM3:
			  lastKeyPressed = "Tasto 3 premuto!";
		  break;

		  case KEY_NUM4:
			  lastKeyPressed = "Tasto 4 premuto!";
		  break;

		  case KEY_NUM5:
			  lastKeyPressed = "Tasto 5 premuto!";
		  break;

		  case KEY_NUM6:
			  lastKeyPressed = "Tasto 6 premuto!";
		  break;

		  case KEY_NUM7:
			  lastKeyPressed = "Tasto 7 premuto!";
		  break;

		  case KEY_NUM8:
			  lastKeyPressed = "Tasto 8 premuto!";
		  break;

		  case KEY_NUM9:
			  lastKeyPressed = "Tasto 9 premuto!";
		  break;
		}
		repaint();
	}	
}

0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione