Первая программа на Java ME

Цикл статей «Учебник Java ME и LWUIT»

В прошлых постах мы рассматривали общий обзор того, что из себя представляет Java ME, рассмотрели конфигурации и профили платформы и прошлись по инструментам разработки и отладки. В данном посте продолжим и создадим начальный пример Hello World и запустим на виртуальном эмуляторе, входящий в Java ME SDK 3.2.

Требуемые инструменты

Для того, чтобы написать код и запустить пример нам необходимо установить следующий набор инструментов:

  • установленный JDK 7 или выше с виртуальной машиной Java;
  • Java ME SDK 3.4 — набор средств для разработки на Java ME, включающий в себя и эмуляторы;
  • Java ME SDK 3.4 Plugins for NetBeans — набор плагинов для NetBeans, скачиваются на официальном сайте, на той же странице и месте, где и Java ME SDK 3.4
  • IDE NetBeans — интегрированная среда разработки на Java. Причем, скачивать c поддержкой PHP. Не будем захламлять NetBeans ненужными, нужные мы сами дальше установим;
  • Плагины Java ME для NetBeans — дополнительно устанавливается через интерфейс NetBeans;

После того, как JDK 7 установлен, Java ME SDK 3.2 установлен и NetBeans установлен неободимо установить на NetBeans дополнительные плагины Java ME для создания проектов Java ME. Установка плагинов осуществляется через интерфейс NetBeans в меню «Сервис»->»Подключаемые модули»

netbeans-modules

Во вкладке «Доступные модули» через поиск вбиваем ключевое слово «Java ME» и устанавливаем все доступные модули, а те, что мы скачали в архиве Java ME SDK 3.4 Plugins for NetBeans(oracle-jmesdk-3-4-rr-nb-plugins.zip) добавляем через то же диалоговое окно, но со вкладки «Загружено», предварительно разархивировав содержимое архива.

Дальше нам настроить среду NetBeans, чтобы она нашла наш Java ME платформу на этапе создания проекта Java ME. Для этого опять заходим в меню «Сервис»->»Платформы Java»

netbeans-java-platforms

Нажимаем  появившемся окне на кнопку «Добавить платформу»

java-me-platform-set-netbeansВыбираем «Эмулятор платформы CLDC Java ME» , жмем далее и выйдет окно выбора папки домашней директории Java ME SDK

select-java-me-sdk-platform-netbeansПосле выбора платформы необходимо поставить галочку на обнаруженную платформу и нажать на кнопку «Готово». Все, настройка завершена, теперь приступим к созданию проекта.

Создание проекта Java ME

После установки всех плагинов и настройки платформы у нас будет возможность создавать проекты Java ME стандартным способом. Для этого переходим «Файл»->»Создать проект…»

create-java-me-cldc-project-netbeans

Выбираем шаблон проекта «Java ME» в категории и «Mobile Application» в проекте, жмем «Далее >»

type-name-and-next

Вводим название нашего проекта и выбираем место хранения, жмем «Далее >»

select-conf-and-profile-and-nextВыбираем платформу эмулятора, конфигурацию и профиль, жмем «Далее >» и «Готово»

our-java-me-project

На данный момент у нас есть пустой проект. Добавим класс «HelloWorld.java» в папку исходного кода, который будет содержать код запуска приложения с выводом на экран записи приветствия «Hello World»:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.*;

/**
 * @author WebSofter
 */
//Создаем основной класс мидлета(Java ME приложения)
//через наследование класса MIDlet и реализацию интерфейса 
//обработчика команд CommandListener
public class HelloWorld extends MIDlet implements CommandListener{
    private Command cmdExit;//Объект комманды для меню
    private Display dispMainDisplay;//Объект дисплея для вывода
    public HelloWorld(){
        dispMainDisplay = Display.getDisplay(this);//Получаем текущий дисплей устройства
        cmdExit = new Command("Выход", Command.SCREEN, 2);//Создаем команду выхода     
}
    public void startApp() {
        //Создаем новый текст
        TextBox txtHello = new TextBox("Hello World", "Hello World!", 256, 0);
        //Добавляем нашу команду
        txtHello.addCommand(cmdExit);
        //Добавляем слушатель событий
        txtHello.setCommandListener((CommandListener) this);
        //Выводим текст на дисплей
        dispMainDisplay.setCurrent(txtHello);
        
    }
    //Стандартный метод паузы мидлета
    public void pauseApp() {
    }
    //Стандартный метод выхода из текущего окна класса
    public void destroyApp(boolean unconditional) {
    }
    //Обработчик событий, реализованый из интерфейса CommandListener
    public void commandAction(Command c, Displayable s){
        if(c == cmdExit){
            destroyApp(false);//Выходим из мидлета
            notifyDestroyed();//Уведомляем о выходе
        }
    }
}

Необходимо отметить, что в Java название класса должно соответствовать названию файла класса иначе выйдет ошибка. Данный класс содержит основной минимальный код для запуска приложения Java ME, иначе говоря мидлета(MIDlet), так называются программы для Java ME в среде Java.

После того, как класс есть и код для него написан необходимо зарегистрировать данный, главный, класс в свойствах проекта. Для этого нажимаем ПКМ на проекте и выйдет диалоговое окно с настройками проекта

project-properties-winВ разделе «Application Descriptor» во вкладке MIDlets записываем название главного класса, которого мы добавили в проект. Жмем «OK» и запускаем наш проект b мы увидим как запуститься эммулятор и установится в него наш мидлет и запустится автоматически

run-our-midlet-jar

После сборки проекта в директории проекта dist появятся файлы Hello_World.jad и Hello_World.jar.