Bom galera, sou iniciante em j2me e to com uma dúvida… que ja tentei resolver e já estou pirando aqui
tipo… meu professor passou um sistemas para multas e verificação de pontos perdidos por placa do veiculo
[code]import java.util.Date;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class Multas extends MIDlet implements CommandListener{
private Display tela;
private TextField placa, placa2;
private Form form, form2;
private ImageItem img;
private ChoiceGroup tipo;
private DateField data;
private Command sair, multar, pontuacao, voltar, pesquisar;
// private int pontos;
private CorpoMulta multa[];
public Multas() {
}
public CorpoMulta pesquisar(CorpoMulta multa[]){
int x = 0;
boolean achei = false;
while ((achei == true) || (x < multa.length) ){
if (multa[x].getPlaca().equals(placa.getString()) ){
achei = true;
return multa[x];
}
x++;
}
return null;
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
tela = Display.getDisplay(this);
form = new Form("Sistema de Multas");
form2 = new Form("Pesquisa de placas");
multa = new CorpoMulta[10];
Image im = null;
try {
im = Image.createImage("/policia.PNG");
} catch (Exception e) {
}
img = new ImageItem("Policia", im, ImageItem.LAYOUT_CENTER, null);
placa = new TextField("Placa", "", 8, TextField.ANY);
placa2 = new TextField("Placa", "", 8, TextField.ANY);
tipo = new ChoiceGroup("Tipo", Choice.EXCLUSIVE);
Date d = new Date(System.currentTimeMillis());
data = new DateField("Data", DateField.DATE);
data.setDate(d);
sair = new Command("Sair", Command.EXIT, 0);
//comandos referentes ao form
multar = new Command("Multar", Command.SCREEN, 1);
pontuacao = new Command("Pontuacao", Command.SCREEN, 1);
//comandos referentes ao form2
voltar = new Command("Voltar", Command.SCREEN, 1);
pesquisar = new Command("Pesquisar", Command.SCREEN, 1);
tipo.append("Gravissima", null);
tipo.append("Grave", null);
tipo.append("Media", null);
form.append(img);
form.append(placa);
form.append(tipo);
form.append(data);
form.addCommand(sair);
form.addCommand(multar);
form.addCommand(pontuacao);
form.setCommandListener(this);
form2.append(placa2);
form2.addCommand(sair);
form2.addCommand(voltar);
form2.addCommand(pesquisar);
// form2.setCommandListener(this);
tela.setCurrent(form);
}
public void commandAction(Command c, Displayable d){
int i = -1;
if (c.equals(sair)){
notifyDestroyed();
}
if (c.equals(multar) ){
i++;
multa[i].setPlaca(placa.getString());
multa[i].setTipoMulta(tipo.getSelectedIndex());
switch(tipo.getSelectedIndex() ){
case 0:
multa[i].setPontos(7);
placa.setString("");
break;
case 1:
multa[i].setPontos(5);
placa.setString("");
break;
case 2:
multa[i].setPontos(3);
placa.setString("");
break;
}
}
if (c.equals(pontuacao) ){
tela.setCurrent(form2);
form2.setCommandListener(this);
}
if (c.equals(voltar) ){
tela.setCurrent(form);
}
if(c.equals(pesquisar) ){
Alert msg;
if (! pesquisar(multa).equals(null) ){
msg = new Alert("Pontuação","pontuação perdida da placa "
+ multa +"é de "+multa+" pontos", null,
AlertType.INFO);
msg.setTimeout(3000);
tela.setCurrent(msg);
} else{
msg = new Alert("Pontuação", "Não exixte multa para placa"+ placa.getString(), null, AlertType.INFO);
msg.setTimeout(4000);
tela.setCurrent(msg);
}
}
}
}
[/code]
meu problema ta sendo quando eu executo um comando ele da erro NullPointerException
java.lang.NullPointerException
at Multas.commandAction(+44)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+57)