Чтение онлайн

на главную - закладки

Жанры

Компьютер + мобильник: эффективное взаимодействие
Шрифт:

Проверим, как программа работает. Нажмите кнопку 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 – координата X левого верхнего угла прямоугольника, в который будет вписан эллипс;

у – координата Y левого верхнего угла прямоугольника, в который будет вписан эллипс;

width – ширина эллипса;

height – высота эллипса;

startAngle – начальный угол дуги;

arcAngle – длина дуги в градусах.

• void drawLine(int x1, int y1, int x2, int y2) – рисует прямую линию:

xl – координата Х начала линии;

yl – координата Y начала линии;

х2 – координата Х конца линии;

у2 – координата Y конца линии.

• void drawRect(int х, int у, int width, int height) – рисует прямоугольник:

x – координата Х левого верхнего угла прямоугольника;

у – координата Y левого верхнего угла прямоугольника;

width – ширина прямоугольника;

height – высота прямоугольника.

• void drawRoundRect(int х, int у, int width, int height, int arcWidth, int arcHeight) – рисует прямоугольник с закругленными углами:

х – координата Х левого верхнего угла прямоугольника;

у – координата Y левого верхнего угла прямоугольника;

width – ширина прямоугольника;

height – высота прямоугольника;

arcWidth – ширина закругленного угла;

arcHeight – высота закругленного угла.

• void drawString(String str, int x, int y, int anchor) – рисует строку:

str – указатель на строку символов;

Поделиться:
Популярные книги

Меняя маски

Метельский Николай Александрович
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
Меняя маски

Курсант: назад в СССР 9

Дамиров Рафаэль
9. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: назад в СССР 9

Лорд Системы 13

Токсик Саша
13. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 13

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Месть Пламенных

Дмитриева Ольга
6. Пламенная
Фантастика:
фэнтези
6.00
рейтинг книги
Месть Пламенных

Как я строил магическую империю 6

Зубов Константин
6. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 6

Идеальный мир для Лекаря 24

Сапфир Олег
24. Лекарь
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Идеальный мир для Лекаря 24

Внешняя Зона

Жгулёв Пётр Николаевич
8. Real-Rpg
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Внешняя Зона

Архил…? Книга 3

Кожевников Павел
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
Архил…? Книга 3

Идеальный мир для Лекаря 18

Сапфир Олег
18. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 18

Барон ненавидит правила

Ренгач Евгений
8. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Барон ненавидит правила

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Дворянская кровь

Седой Василий
1. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Дворянская кровь