Создайте в папке src
файл с именем MyMIDlet.java, затем откройте его в текстовом редакторе (щелкните правой кнопкой мыши на файле и в появившемся контекстном меню выполните команду Открыть с помощью Блокнот). Введите в файл код из листинга 6.3.Листинг 6.3. Код программы
Теперь сохраните содержимое файла, используя сочетание клавиш Ctrl+S
, или команду Файл Сохранить.Сейчас вернитесь к J2ME Wireless Toolkit
. Нажмите кнопку Build (Компиляция), чтобы скомпилировать проект. Если все прошло нормально, то есть проект не содержит ошибок, то в консоли должна появиться строка Build complete (Компиляция завершена).Проверим, как программа работает. Нажмите кнопку Run
(Исполнить), расположенную в верхней части окна. На экране появится эмулятор мобильного телефона (рис. 6.24).Как видите, в качестве названия программы отображается MyProject
, о чем уже упоминалось ранее.Чтобы запустить программу, нажмите кнопку Launch
(Запуск) на эмуляторе. Поскольку программа не выполняет никаких операций с экраном, то на экране эмулятора вы не увидите изменений, но в консоли будет выведено Вход, что свидетельствует о том, что программа все-таки корректно работает. Поскольку корректного выхода у нас не предусмотрено, то придется воспользоваться старым добрым методом – выключением телефона. Просто закройте окно эмулятора, нажав кнопку с крестиком. Перед выходом в консоль будет выведено Выход, затем окно эмулятора закроется, и в консоль будет выведена служебная информация о программе. В результате J2ME Wireless Toolkit будет выглядеть примерно так, как показано на рис. 6.25.Итак, «скелет» приложения можно считать готовым. Однако до сих пор наши творения хоть и работали, но ничего не выводили на экран. Это нужно исправить.
Для начала немного теории. Дело в том, что само приложение, то есть класс MIDlet
, рисовать не умеет. Для отображения графики существует специальный класс Canvas, а также его усовершенствованная версия – класс GameCanvas.Рис. 6.24.
Окно эмулятора телефона.Рис. 6.25.
Консоль вывода WTK.Само слово «canvas» можно перевести с английского как «холст». Из этого следует, что класс Canvas
предназначен для работы с графическими объектами, но не только. Он является базовым при разработке приложений, требующих низкоуровневой работы с экраном (то есть рисования), обработки нажатий клавиш (без этого в играх никуда), работы с джойстиком (если таковой имеется), а также для других полезных возможностей.Его наследник, класс GameCanvas
, умеет немного больше. В добавление к стандартным возможностям он умеет проверять состояние клавиш, поддерживает двойную буферизацию изображений (что значительно улучшает качество анимации) и др. Как видите, GameCanvas имеет больше возможностей, поэтому с ним мы и будем работать. Ниже приведены описания основных его методов.• int getHeight
– возвращает высоту экрана в пикселах.• int getwidth
– возвращает ширину экрана в пикселах.• void paint(Graphics g)
– этот метод должен содержать код, отвечающий за рисование. Graphics – объект класса Graphics, с помощью которого будет производиться рисование.• Graphics getGraphics
– получает объект, с помощью которого и будет осуществляться рисование на экране.• void flushGraphics
– отображает содержимое графического буфера на дисплей.• void keyPressed(int keyCode)
– этот метод вызывается, если была нажата какая-либо клавиша. keyCode – содержит код нажатой клавиши.• void keyReleased (int keyCode)
– метод вызывается, если какая-либо клавиша была отпущена. keyCode – содержит код нажатой клавиши.С остальными методами вы познакомитесь в дальнейшем, в процессе написания программ.
Почти все готово, однако есть одно «но». Как уже упоминалось, класс Canvas
является лишь холстом, а ведь для рисования нужен не только холст – очень пригодятся «кисти» и «краски». Инструменты для рисования содержатся в классе Graphics. Ниже представлено несколько его методов.• void drawArc(int х, int у, int width, int height, int startAngle, int arcAngle)
– рисует дугу эллипса:– x
– координата– у
– координата– width
– ширина эллипса;– height
– высота эллипса;– startAngle
– начальный угол дуги;– arcAngle
– длина дуги в градусах.• void drawLine(int x1, int y1, int x2, int y2)
– рисует прямую линию:– xl
– координата– yl
– координата– х2
– координата– у2
– координата