помогите новичку (программирование для мобил)

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

#1
вотс, есть код:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Ticker;
import java.io.IOException;
public class SlideShow extends MIDlet implements CommandListener {

private Display display; // менеджер дисплея
private Form form; // отображаемая форма
private Command next; // команда перехода к следующей картинке
private Command back; // команда перехода к предыдущей картинке
private Image image; // объект картинки
private int slideNum=1; // номер текущей картинки
private int maxSlideNum=5; // общее количество картинок
...
public void startApp()
{ // получить ссылку на менеджер дисплея
display = Display.getDisplay(this);
// создать новую форму без заголовка
form = new Form(null);
// установить приемник команд для формы
form.setCommandListener(this);
// создать команду перехода к следующей картинке
next = new Command("Next", Command.OK, 1);
// добавить команду в форму
form.addCommand (next);
// создать команду возврата к предыдущей картинке
back = new Command("Back", Command.BACK, 1);
// добавить команду в форму
form.addCommand(back);
// создать объект бегущей строки
Ticker t = new Ticker("My Photoalbum");
// добавить бегущую строку в форму
form.setTicker(t);
// добавить в форму первую картинку
setImage("/l.png");
// отобразить форму на экране
display.setCurrent(form);
}
// метод обработки команд
// реализует действия, предписанные командами
public void commandAction(Command c, Displayable d) {
// команда перехода к следующей картинке.
// если текущая картинка не последняя
if (c == next && slideNum<maxSlideNum)
// увеличить номер текущей картинки
slideNum++;
// команда возврата к предыдущей картинке.
// если текущая картинка не первая
if (c == back && slideNum>1)
// увеличить номер текущей картинки
slideNum--;
// удалить из формы текущую картинку
form.delete(0);
// получить имя файла картинки из ее номера
// и добавить полученную картинку в форму
setImage("/" + Integer.toString(slideNum)+".png");
}
// функция setlmage принимает имя файла картинки,
// создает объект картинки и добавляет в форму
public void setImage(String path)
{
try {
// создать картинку из файла, переданного в аргументе
image = Image.createImage(path);
}
// обработать исключительную ситуацию,
// если файл не может быть открыт
catch (IOException ioe)
{
System.out.println(ioe.getMessage());
}
// добавить картинку в форму
form.append(image);
}

}
все нормально компилируется но при запуске RUN на эмуляторе пишет ошибку:
Running with storage root DefaultColorPhone
null
startApp threw an Exception
java.lang.NullPointerException
java.lang.NullPointerException
at javax.microedition.lcdui.Form.append(+11)
at SlideShow.setImage(+33)
at SlideShow.startApp(+104)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+116)
что делать - уж замучался ;) помогите
 
Статус
Закрыто для дальнейших ответов.