Майкл Моррисон

Создание игр для мобильных телефонов


Скачать книгу

мидлета.

      В последующих разделах подробно рассматривается каждый из этапов, а кульминацией будет полная разработка первого J2ME-мидлета.

      Написание программного кода

      В этом разделе вы создадите код мидлета Skeleton. Первая часть создаваемого кода – это импорт нескольких важных пакетов J2ME. Вы можете не импортировать пакеты, а ссылаться на них через полное имя (например, javax.microedition.midlet.MIDlet), но это очень неудобно и делает код плохо читаемым. Поэтому первые две строки кода вашего мидлета импортируют два главных пакета, необходимых для разработки:

      import javax.microedition.midlet.*;

      import javax.microedition.lcdui.*;

      Совет Разработчику

      Многие Java-программисты не одобряют импортирование целых пакетов с использованием группового символа * (звездочка), поскольку при этом не содержится информация об особых классах, которые вы импортируете. Однако это очень простой и быстрый способ импортировать все классы пакета, а для целей этой книги я буду использовать самый простой подход, чтобы сделать код как можно более понятным. Не бойтесь импортировать классы при написании собственного кода, это поможет вам сделать код более ясным.

      Пакет javax.microedition.midlet включает поддержку класса MIDlet, в то время как пакет javax.microedition.lcdui включает поддержку классам и интерфейсам GUI, которые используются для создания GUI-мидлета, например, класс Display. Импортировав эти два пакета, вы можете объявить класс SkeletonMIDlet, производный от MIDlet:

      public class SkeletonMIDlet extends MIDlet implements CommandListener }

      Не удивительно, что класс SkeletonMIDlet расширяет MIDlet, но вот реализация интерфейса CommandListener может показаться весьма странной. Этот интерфейс необходим для создания команды Exit, которая позволяет пользователю выходить из мидлета. Если говорить более подробно, то интерфейс CommandListener реализован таким образом, чтобы мидлет мог отвечать на командные события.

      Единственная переменная, член класса SkeletonMIDlet, – это объект SCanvas, который представляет главный экран:

      private SCanvas canvas;

      Класс SCanvas – это особый класс мидлета, производный от класса Canvas. Холст инициализируется в методе startApp():

      public void startApp() {

      if (canvas == null) {

      canvas = new SCanvas(Display.getDisplay(this));

      Command exitCommand = new Command("Exit", Command.EXIT, 0); //Создаем команду EXIT и добавляем ее в

      canvas.addCommand(exitCommand); //класс Canvas. Теперь canvas сможет отвечать на эту команду

      canvas.setCommandListener(this);

      }

      // Start up the canvas

      canvas.start();

      }

      Метод startApp() вызывается при переходе мидлета в состояние Active, первым шагом является создание холста. Объект Display мидлета создается и передается при создании холста. Команда Exit создается путем передачи конструктору трех параметров: названия команды, ее типа и приоритета. Имя команды определяется пользователем и появляется как экранная кнопка на дисплее устройства в зависимости от приоритета и количества доступных кнопок. Тип команды должен быть определен одной из трех предопределенных констант – EXIT, OK или CANСEL.

      Команда добавлена на холст, поэтому она становится активной. Но все еще необходимо настроить приемник команд для перехвата и обработки командных событий. Для этого