Лекция: Создание нового приложения для CDC – профиль Foundation Profile

 

Этот раздел посвящен созданию приложения для CDC (Xlet) для профиля Foundation Profile с использованием эмулятора Embedded Software Architecture Emulator 1.14c компании Ricoh.

Выберите «File > New Project» (Ctrl+Shift+N). В области «Categories» выберите «Mobility». В «Projects» выберите шаблон «CDC Application». Нажмите кнопку «Next».

На экране «Name and Location» присвойте проекту имя MyRicohApplication и укажите местоположение проекта. Не снимайте флажок «Create Main Class». Нажмите кнопку «Next».

На странице «Select Platform» выберите «Ricoh 1.14c».

Нажмите кнопку «Finish». В результате создается новое приложение, главный класс которого открывается в редакторе исходного кода. Структура проекта показана на следующем рисунке. Обратите внимание, что автоматически созданный код основан на профиле. В данном случае главный класс получен на основе jp.co.ricoh.dsdk.xlet.Xlet. В этом профиле отсутствует поддержка редактора GUI Designer среды NetBeans.

Для запуска проекта выберите «Run > Run Main Project». Эмулятор выводит на экран текст «TODO implement makeUIControls».

Теперь можно выполнить отладку проекта, а также создать и выполнить тесты с помощью инфраструктуры JUnit.


import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class MobileTest extends MIDlet

implements CommandListener, ItemCommandListener{

private Display display;

private Form LogoForm,QForm;

public MobileTest() {}

//Список вопросов теста

private String quest[]={«Из всех домашних растений Вы предпочитаете кактусы.»,

«Вы уже год не мыли полы, потому что можете случайно задеть компьютерные провода.»,

«Отключение в районе электричества равносильно для Вас стихийному бедствию.»,

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

«Почтальоны пугаются, когда видят знак @ на отправляемых вами письмах.»,

«Вы предпочитаете использовать принтер, а не ручку.»,

«Вы очень удивляетесь, когда в видите надпись ЭТО МЫШЬ рядом с хвостаты зверем.»};

private StringItem str; //Сторка

private ChoiceGroup myCG; //Варианты ответов

private TextField TFName,TFAge; //Имя и возраст

private int cqnum=0; //Номер текущего вороса

private int maxq=quest.length; //Число вопросов

private int summ=0; //Число набранных балов

//Создаем комманды

private Command CMD_GO = new Command(«Вперед», Command.ITEM, 1);

private Command CMD_PRESS = new Command(«Нажать», Command.ITEM, 1);

private Command CMD_FIRST = new Command(«Начать», Command.SCREEN, 1);

private Command CMD_START = new Command(«OK», Command.SCREEN, 1);

private Command CMD_NEXT = new Command(«OK», Command.SCREEN, 1);

private Command CMD_FINISH = new Command(«Закончить», Command.SCREEN, 1);

private Command CMD_EXIT = new Command(«Выход», Command.EXIT, 1);

protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException

{ exitApp(); } // вызывает уборщик мусора

protected void pauseApp() { }

protected void startApp() throws MIDletStateChangeException

{ if( display == null )

{ initApp(); } }

private void initApp() //Этот метод выполняется при запуске мидлета

{ display = Display.getDisplay( this );

LogoForm=new Form(«Mobile Test — Мир ПК»); //Создаем первую форму

LogoForm.setCommandListener(this);

//Добавляем рисунок. Обратите внимание, рисунок загружается в скобках try{}catch{}

try{ Image img=Image.createImage("/Logo.png");

ImageItem FormImg=new

ImageItem(«МирПК — Тест»,img,ImageItem.LAYOUT_CENTER,"");

LogoForm.append(FormImg);

}catch(java.io.IOException ex){}

//Создаем подпись

str = new StringItem(«aRix», «www.mobilab.ru», Item.HYPERLINK);

LogoForm.append(str);

//подключаем ссылку

str.setDefaultCommand(CMD_GO);

str.setItemCommandListener(this);

//Добавляем подэкранные кнопки

LogoForm.addCommand(CMD_FIRST);

LogoForm.addCommand(CMD_EXIT);

//Объявляем обработчик команд

display.setCurrent(LogoForm);

//Создаем форму для вопросов, добавляем на нее кнопки и объявляем обработчик

QForm=new Form(«Вопрос»);

QForm.addCommand(CMD_NEXT);

QForm.addCommand(CMD_EXIT);

QForm.setCommandListener(this);

//Создаем список с вариантами вариантов.

myCG=new ChoiceGroup(«Ответ»,Choice.EXCLUSIVE);

myCG.append(«Нет»,null);

myCG.append(«Иногда»,null);

myCG.append(«Да»,null); }

private void questForm(int qnum) //Форма с вопросами

{ QForm.deleteAll(); //Очищаем форму

//Добавляем вопрос из массива

str = new StringItem(«Вопрос», quest[qnum]);

QForm.append(str);

//Добавляем на форму вырианты ответов

QForm.append(myCG);

//Делаем окно формы видимым

display.setCurrent(QForm); }

public void exitApp()

{ notifyDestroyed(); } // уничтожение MIDlet-а

public void commandAction(Command c, Item item) {

if (c == CMD_GO) {

String text = «Переход по ссылке...»;

Alert a = new Alert(«URL», text, null, AlertType.INFO);

display.setCurrent(a); } }

public void commandAction(Command c, Displayable d) {

if (c == CMD_FIRST) { //Команда: загрузить первый экран

//Создаем форму

Form firstForm=new Form(«Представьтесь пожалуйста»);

//Размещаем на ней поля для ввода текста

TFName=new TextField(«Ваше имя»,"",25,TextField.ANY);

TFAge=new TextField(«Ваш возраст»,"",3,TextField.NUMERIC);

firstForm.append(TFName);

firstForm.append(TFAge);

//Добавляем команды

firstForm.addCommand(CMD_START);

firstForm.addCommand(CMD_EXIT);

firstForm.setCommandListener(this);

//Делаем окно формы видимым

display.setCurrent(firstForm); }

if (c == CMD_START) {//Команда о начале теста

questForm(0); }

if (c == CMD_NEXT) {//Команда перехода к следующему вопросу

cqnum=cqnum+1; //Увеличивем номер вопроса

if (cqnum==maxq-1){ //Проверяем, не последний ли это вопрос. Если да, меняем кнопку.

QForm.removeCommand(CMD_NEXT);

QForm.addCommand(CMD_FINISH); }

summ=summ+myCG.getSelectedIndex(); //Учитываем результат последнего ответа

questForm(cqnum); } //Переходим к следующему вопросу

if (c == CMD_FINISH) { //Команда о получении результата

summ=summ+myCG.getSelectedIndex(); //Учитываем результат последнего ответа

QForm.deleteAll(); //Очищаем форму

QForm.append(""+TFName.getString()+", ну что Вам сказать. ");//Выводим текст

//В зависимости от набранных очков выводим результат теста и соответствующую картинку.

if (summ<1){

QForm.append(«Срочно купите себе компьютер!!!»);

try{

Image img=Image.createImage("/1.png");

ImageItem FormImg=new

ImageItem("",img,ImageItem.LAYOUT_CENTER,"");

QForm.append(FormImg);

}catch(java.io.IOException ex){} }

else if (summ<3){

QForm.append(«На вашем месте, я бы почаще включал компьютер.»);

try{

Image img=Image.createImage("/2.png");

ImageItem FormImg=new

ImageItem("",img,ImageItem.LAYOUT_CENTER,"");

QForm.append(FormImg);

}catch(java.io.IOException ex){} }

else if (summ<7){

QForm.append(«Вы вполне адекватный человек.»);

try{

Image img=Image.createImage("/3.png");

ImageItem FormImg=new

ImageItem("",img,ImageItem.LAYOUT_CENTER,"");

QForm.append(FormImg);

}catch(java.io.IOException ex){} }

else if (summ<7){

QForm.append(«Возможна мама была права, когда пыталась выкинуть Ваш компьютер.»);

try{

Image img=Image.createImage("/4.png");

ImageItem FormImg=new

ImageItem("",img,ImageItem.LAYOUT_CENTER,"");

QForm.append(FormImg);

}catch(java.io.IOException ex){}

}

else

{

QForm.append(«По-моему Вам давно пора лечиться (Если что, я в 7 палате).»);

try{

Image img=Image.createImage("/5.png");

ImageItem FormImg=new

ImageItem("",img,ImageItem.LAYOUT_CENTER,"");

QForm.append(FormImg);

}catch(java.io.IOException ex){}

}

//Удаляем кнопку

QForm.removeCommand(CMD_FINISH);

}

if (c == CMD_EXIT){exitApp();} //Команда «Выход»

}

 

}

 

еще рефераты
Еще работы по информатике