Olá pessoal.
Estou iniciando (hoje) em j2me e desenvolvi um aplicativo simples somente para eu ter uma base de como desenvolver algo que tenho em mente. Funcionou perfeito no emulador do netbeans, mas ao rodá-lo em meu celular (Sony Ericsson w200i) ele simplesmente acusa erro de aplicativo e não inicia. Se puderem me dar uma ajuda agradeceria.
Estou usando as especificações do club-java.com (MIDP-2.0 e CLDC-1.1).
Em seguida o código dos dois arquivos.
Obrigado.
Midlet Player, inicia a aplicação
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Player extends MIDlet {
private Display display;
public void startApp() {
this.display = Display.getDisplay(this);
new Show(this);
}
public void destroyApp(boolean unconditional) {
}
public void setDisplayable(Displayable displayable) {
this.display.setCurrent(displayable);
}
protected void pauseApp() {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Classe Show, saída (tela) para o usuário
[code]
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
/public class Show extends Canvas implements CommandListener {
private Player player;
private Command command_exit;
private int key_pressed;
public Show (Player player) {
this.player = player;
this.command_exit = new Command("Sair", Command.EXIT, 0);
this.addCommand(this.command_exit);
this.setCommandListener(this);
this.player.setDisplayable(this);
}
public void commandAction(Command command, Displayable displayable) {
if (command == this.command_exit) {
this.player.destroyApp(false);
this.player.notifyDestroyed();
}
}
public void paint(Graphics graphics) {
graphics.setColor(255, 255, 255);
graphics.fillRect(0, 0, 128, 160);
graphics.setColor(0, 0, 0);
graphics.drawRect(0, 0, 128, 160);
graphics.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE));
graphics.drawString(this.getNote(), 62, 72, Graphics.LEFT|Graphics.TOP);
}
protected void keyPressed(int key_code) {
this.key_pressed = Integer.parseInt(getKeyName(key_code));
repaint();
}
private String getNote() {
switch (this.key_pressed) {
case 1 : return "C";
case 2 : return "D";
case 3 : return "E";
case 4 : return "F";
case 5 : return "G";
case 6 : return "A";
case 7 : return "B";
}
return "";
}
}[/code]
E bem, gostaria muito de dividir os comandos de entrada do usuário da classe de feedback para o usuário, mas não consegui por ter de herdar a classe Canvas e por ela implementar o método KeyPressed. Se não for encomodo me darem algumas dicas de programação tmb. Mas aqui meu principal objetivo no momento é saber o porque de não funcionar em meu cel.
Obrigado