GuglielmoS Pubblicato: 29 Ottobre 2009 Segnalazione Share Pubblicato: 29 Ottobre 2009 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(); } } Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 29 Ottobre 2009 Segnalazione Share Pubblicato: 29 Ottobre 2009 Imho, la guida si e' persa qualche pezzo per strada... "inscatola" tutto in una midlet e vedrai che girera' senza problema. Link to comment Condividi su altri siti More sharing options...
GuglielmoS Pubblicato: 30 Ottobre 2009 Autore Segnalazione Share Pubblicato: 30 Ottobre 2009 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(); } } Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora