LWUIT. Формы. Установка заднего фона формы

👁 69 просмотров

Формы в Java ME — это верхнеуровневые компоненты, которые служат корневым элементом в интерфейсе LWUIT — библиотеки. Часто требует разметить фото на заднем фоне формы и подогнать сразу под размеры экрана. Для установки и масштабирования, под скрин, заднего фона в виде картинки в форме можно воспользоваться следующим кодом:

Image iMBanner;
try {
    iMBanner = Image.createImage("/res/main-banner.png");
    fLBanner.setLayout(new BorderLayout());
    fLBanner.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    fLBanner.setLayout(new BoxLayout(BoxLayout.X_AXIS));
    fLBanner.getStyle().setBgImage(iMBanner);
    fLBanner.getStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED);
} catch (IOException ex) {
    ex.printStackTrace();
    System.out.print("Error\n\n"+ex.getMessage());
    fLBanner.addComponent(new Label(ex.getMessage()));
}
fLBanner.show();

Часть 2. Простой пример создания Hello World в Java ME

👁 170 просмотров

Связанные статьи:

В прошлом посте мы рассматривали общий обзор того, что из себя представляет 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);//Dsltkztv gfvznm lkz rjvfyls
    }
    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.

Часть 1. Простой пример создания Hello World в Java ME

👁 120 просмотров

Связанные статьи:

Компактная версия платформы Java (Java ME) представляет собой надежную и настраиваемую среду для приложений, работающих на мобильных и встраиваемых устройствах: мобильных телефонах, цифровых приемниках, проигрывателях дисков Blu-ray, цифровых устройствах хранения данных, модулях M2M, принтерах и других устройствах.
Технология Java ME изначально разрабатывалась для преодоления ограничений, связанных с созданием приложений для компактных устройств. С этой целью компания Oracle разработала технологию Java ME, которая способна соответствовать подобным техническим ограничениям и позволяет создавать Java- приложения, работающие на компактных устройствах с ограниченным объемом памяти, диагональю экрана и зарядом аккумулятора.

Конфигурации и профили Java ME

Java ME построена как блочная структура, где составляющие можно поделить на конфигурации и на профили. У каждой конфигурации есть свой профиль, как это показано на рисункеjavame-structureЕсли рассматривать Java ME в общем среде Java, то к Java ME относится отдельный класс устройств, которые ограничены ресурсами и производительностью в отличии от Java EE и Java SE приложений, которые расcчитаны на высокопроизводительные сервера и персональные компьютеры. Сам класс Java ME делится еще на 2 подкласса конфигурации устройств, как показано на рисунке

javame-cdc-vs-cldc

CDC(Connected Device Communication) — конфигурация устройст с соединением в сеть. Это класс устройств, которые характеризуются следующими свойствами:

  • имеют процессор, имеющий 32 — битную архитектуру;
  • имеют тактовую частоту не ниже 75 MHz;
  • имеют оперативную память в пределах 4 — 32 Мб.

К этим устройствам можно отнести телевизоры, приставки, спутниковые антенны, автомобльные встраиваемые устройства и т.д.

CLDC(Connected Limited Device Communication)  — конфигурация устройств с соединением в сеть с ограниченными ресурсам. Это класс устройств, которые характеризуются следующими свойствами:

 

  • имеют процессор, имеющий 16 — 32 — битную архитектуру;
  • имеют тактовую частоту не ниже 16 MHz;
  • имеют оперативную память в пределах 256 Кб — 4 Мб.

К данной конфигурации устройств можно отнести различного рода телефоны, коммуникаторы, цифровые приемники и т.д.

Смысл конфигураций заключается в присутствии или отсутствии в API Java для данного устройства определенных классов и предъявляет определенные требования к Java -машине, поэтому приложения CDC выполняются на JVM(Java Vitual Mashine) по аналогии с Java EE и Java SE, а CLDC приложения запускаются на специфичной Java — машине — KVM(Kilobyte Virtual Mashine), который предназначен для процессоров с ограниченными возможностями. К примеру, в конфигурации CLDC определенные классы, которые присутствуют в CDC и в общем наборе Java SE/EE, но в силу ограниченности ресурсов железа их количество и свойства урезаны. CDC содержит почти все классы, что и в CLDC.

С конфигурацией мы закончили. Теперь рассмотрим профили конфигураций.  Профили — это набор требований к ресурсной базе внутри конфигурации, таким обрзом, CDC имеет свои профили, а CLDC имеет свои. Мы не будем расматривать специфичные особенности профилей CDC, так как нас интересует мобильная разработка, а это профили CLDC, коих рассмотрим поподробнее.

Профили CDC:

  • Foundation profile;
  • Personal profile.

Профили CLDC:

  • IMP-NG — Information Module Profile — Next Generation
  • MIDP — Mobile Informaton Device Profile.

Версии Java ME

Данные профили актуальны для версии Java ME SDK 3.4, на данный момент существует Java Me SDK 8.1, в котором есть дополнительные профили, а сами профили MIDP и IMP-NG утратили свои былые названия.

javame-jdk-8-structureМы не будем рассматривать версию Java ME SDK 8 и рассмотрим профиль MIDP в CLDC версии Java SDK 3.4.

MIDP(Mobile Informaton Device Profile) — профиль мобильных информационных устройств. Имеет свои версии — 2.0 и 2.1. Каждая версия различается наличием или отсутствием в устройстве определенных функциональных возможностей и предъявляет определенные требования к аппаратным возможностям устройства, но не к API Java. В разработке MIDP, в свое время, принимали участие многие производители мобильных устройств, когда был пик телефонов с Java ME, но развивается и по сей день, а в JDK 8.1 мобильная разработка направлена только для встроенных применений, и так, нет реализации MIDP профиля (нет пакета LCDUI). Тем не менее, JDK 8.1 обеспечивает реализацию профиля MEEP, который является дальнейшим развитием IMP-NG/MIDP.

Еще надо учитывать, что конфигурации могут иметь версии. В Java ME SDK 3.4 самая новая реализация CLDC имеет версию 1.1,  а MIDP — 2.1, был еще профиль MIDP 3.0, который не получил дальнейщее развитие в Java ME SDK 3.4, в силу того, что в Java ME SDK 8 профиль MIDP был реструктуризирован.

На этом закончим данный пост и в продолжении займемся практической частью реализации примера.