- •JAVA-ТЕХНОЛОГИЯ
- •Java Micro Edition (JME)
- •Конфигурации
- •Связь между конфигурациями
- •CLDC vs. JSE
- •CLDC, KVM
- •Профили
- •Профили
- •CLDC
- •Архитектура
- •abstract class MIDLet
- •Описание абстрактных методов класса MIDLet
- •Визуальные компоненты
- •Иерархия классов
- •abstract class Displayable
- •abstract class Screen
- •abstract class Canvas
- •class Graphics
- •(C) В.О. Сафонов. 2013
- •Код примера 1 / 2
- •Код примера 2/2
- •Дополнительные возможности
- •Процесс создания приложения
- •Процесс создания приложения
- •.jad - файл
- •Описание структуры .jad
- •Пример загрузки приложения через WAP
- •Используемые технологии
- •Эмуляторы
- •Материалы
- •Особенности KVM
- •Пример программы для
- •MIDP и MIDlets
- •MIDlet Packaging
- •Разработка и инсталляция MIDlet
- •High-level API (TextBox)
- •High-level API (Commands)
- •High-level API (Forms &
- •Low-level API (Canvas)
- •Работа с Canvas
- •Обработка событий
- •Работа в сети
- •Длительное хранение данных
- •JME и более современные реализации Java для мобильных устройств
abstract class MIDLet
Определяет жизненный цикл приложения
При работе возможна генерация исключения
MIDletStateChangeException
(C) В.О. Сафонов. 2013
Описание абстрактных методов класса MIDLet
startApp() – переход в активное состояние
destroyApp() – сигнализирует о переходе к уничтожению приложения
pauseApp() – сигнализирует о переходе в состояние паузы.
Эти методы вызываются с помощью framework (например, Wireless Toolkit)
(C) В.О. Сафонов. 2013
Визуальные компоненты
Low-Level API – предоставляет возможность непосредственного взаимодействия с экраном и клавиатурой. Вся ответственность возлагается на программиста
High-Level API – готовые компоненты для пользовательского интерфейса. Производитель того или иного устройства предоставляет свою собственную реализацию всех этих компонентов. Таким образом, вся наиболее сложная функциональность - ввод текста, вывод данных, создание списков и т.д. - реализуется производителем.
(C)В.О. Сафонов.
2013
Иерархия классов
(C) В.О. Сафонов. 2013
abstract class Displayable
Интерфейс определяет структуру компоненты, которая может быть выведена на экран.
Каждая такая компонента поддерживает добавление команды.
Классы, реализующие компоненты: Canvas, Screen.
(C)В.О. Сафонов.
2013
abstract class Screen
Абстрактный класс. Базовый класс для иерархии высокоуровневых компонентов.
Для создания интерфейса требуется только описать работу с данными.
Наследники: Alert, TextBox, List, Form
Обработка событий через регистрацию слушателей.
(C)В.О. Сафонов.
2013
abstract class Canvas
Прямой доступ к экрану. Для этого переопределяется метод
void paint(Graphics g);
Обработка нажатий клавиш с использованием их кодов
Два типа кодов: стандартный и внутренний
Вызов метода paint происходит framework’ом в
соответствующий момент
Framework может быть вызван для обновления экрана:
void repaint() ;
void repaint(int x1,int y1,int x2, int y2); // область перерисовки
void serviceRepaint(); // немедленная перерисовка
Поддержка указателя мыши
(C)В.О. Сафонов.
2013
class Graphics
Представляет графический контекст, в котором может быть выполнено рисование
Может быть получен из вызова void paint(Graphics g)
для класса Canvas
Позволяет рисовать прямоугольники, сектора, линии,
выводить текст, рисовать изображения
24-битная модель цвета + 8 бит – альфа-канал (в MIDP 2.0)
Поддержка прозрачности для рисунков, которые могут
быть загружены из файлов формата .png.
Может быть определен прямоугольник, вне которого рисование запрещено
(C)В.О. Сафонов.
2013
(C) В.О. Сафонов. 2013
Код примера 1 / 2
package com.jon.j2me.sample;
import javax.microedition.midlet.*; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType;
/**
*<p>Title: sample project</p>
*<p>Description: Just for sample</p>
*<p>Copyright: Copyright (c) 2006</p>
*<p>Company: SPBU</p>
*@author Ivan Ivanov
*@version 1.0
*/
public class SampleMIDLet extends MIDlet { public SampleMIDLet() {
}
protected void destroyApp(boolean parm1) throws javax.microedition.midlet.MIDletStateChangeException {
}
(C) В.О. Сафонов. 2013
