Назад На главную Вперед

        Таблица умножения на JAVA 2 ME

Я обещал сделать таблицу умножения для сотового телефона. Вот пожалуйста. Но сначала немного о самой Яве.
    Чтобы создать программу для сотового телефона нужно совсем немного. Причем все это совершенно официально бесплатно лежит в Internet или распространяется на дисках. Сначала мы должны установить сам язык программирования JAVA. А так как нам потребуется вариант этого языка для мобильных устройств, то мы и установим Java(TM) 2 SDK, Standard Edition Version 1.4.2. Эта длиннющая строчка обозначает всего-навсего, что мы имеем дело с набором или можно сказать комплектом для разработки программ на языке JAVA стандартной комплектации. Хотя существует версия ME, то есть просто для мобильников, разработчики рекомендуют ставить SE, ну им виднее. Еще нам потребуется среда для разработки, которая поможет нам создавать проект, компилировать его, обкатывать на эмуляторе сотового телефона, и потом создать пакет из двух файлов jar и jad, готовых для закачки в телефон. Среда разработки называется Java 2 Micro Edition Wireless Toolkit. Ну, что тут думать Toolkit - набор инструментов значит.
    Из особенностей создания программ на JAVA стоит подчеркнуть, что язык претендует на объектную ориентированность в чистом виде. Все построено на классах, объектах, методах, свойствах, интерфейсах и прочей объектной атрибутике.
     

    Вначале разработки нового проекта при помощи среды WTK, создается папка с его названием внутри папки для всех приложений: apps. Исходные тексты своей программы, изображения и все остальное вы должны разместить в папках src и res. Только не забывайте, что JAVA, как и СИ различает прописные и строчные буквы.


    В любой программе для мобильного устройства мы должны реализовать пять обязательных составляющих.

- Объявить о создании нового класса.
- Создать ссылки на новые объекты.
- Создать конструктор объекта (экземпляра класса) с инициализацией всех необходимых данных.
- Выполнить реализацию трех основных методов класса: startApp, pauseApp, destroyApp.
- Реализовать интерфейс по управлению приложением: например метод commandAction.

    Про JAVA написано много книг, потому что язык имеет много особенностей. А мы рассмотрим основные моменты на нашей программе Таблица умножения.
 

 

 

// Подключаем необходимые для нас пакеты, в которых сосредоточенны
// базовые классы, потомками которых будут наши.

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;

// Вот оно: объявление о создании нашего класса, как расширения класса MIDlet.
// Далее мы указываем на связь с интерфейсом: специальным объектом,
// который будет давать задания для реализации (исполнения) своих методов.
public class tum extends MIDlet implements CommandListener {

// Создаем ссылки на новые объекты.
// Но, прямо сдесь же можем эти объекты и создать.
private Command rasch = new Command("Расчет", Command.SCREEN, 0);
private Command vvod = new Command("Ввод", Command.SCREEN, 0);
private Command exit = new Command("Выход", Command.EXIT, 1);

// Строки, которые потребуются нам при формировании нашей таблицы.
private String sm;
private String si;
private String sp;
private String ss;

// Объявление об использовании объекта: текстовое поле для ввода.
private TextField tf;
// Есть примитивные типы, например int, а это полноценный объект Integer.
private Integer k1;

// Форма, где мы будем размещать элементы нашей программы.
private Form myform;
// Ссылка на обект mydisplay, имеющий своего прародителя.
private Display mydisplay;

// Конструктор класса.
public tum()
{
// В конструкторе создадим объект нашего дисплея.
// Слово this говорит, что объект создается в рамках нашего класса, а не какого то еще.
mydisplay = Display.getDisplay(this);
// Также создадим объект нашей формы с соответствующим подзаголовком.
myform = new Form("Таблица умножения");
}

// Это точка входа в программу. Этот метод вызывается
// сразу после создания объекта при помощи конструктора.
protected void startApp()
{

// Создадим текстовое поле для ввода первого сомножителя.
tf = new TextField("Введи сомножитель", "0", 15, TextField.DECIMAL);
// И добавим его на нашу форму.
myform.append(tf);

// А теперь попытаемся поместить на форму наш логотип.
// Пусть программа простая, а картиночка все равно должна быть
// try - это для обработки исключительной ситуации
try {
// Загружаем нашу картинку
Image image = Image.createImage("/nk.png");
// Создаем объект класса ImageItem
ImageItem im=new ImageItem("",image,ImageItem.LAYOUT_CENTER,"");
// добавляем его на форму.
myform.append(im);
}
// Если изображение не загрузилось то
// просто продолжить ничего не предпринимая.
catch(java.io.IOException ex){}

// Добавим к нашей форме команды расчета таблицы и выхода из программы
myform.addCommand(rasch);
myform.addCommand(exit);

// Здесь мы указываем, что именно эта форма будет обрабатывать команды
// интерфейса, связь с которым мы продекларировали при объявлении
// о создании нашего класса.
myform.setCommandListener(this);

// Отобразим нашу форму на дисплее устройства
mydisplay.setCurrent(myform);

}
// Конец StartApp

// Интерфейс CommandListener имеет всего один метод.
// А раз мы доверили ему управлять нашим приложением,
// то этот метод, то есть все то, что будет происходить при его вызове,
// мы и должны здесь описать.
public void commandAction(Command c, Displayable s)
{
// Если поступила команда выхода, заканчиваем работу программы.
if (c == exit)
{
destroyApp(false);
notifyDestroyed();
}

// Если поступила команда запроса на ввод сомножителя,
// то показываем нашу форму с полем для ввода.
if (c == vvod)
{
mydisplay.setCurrent(myform);
}

// Если нажата кнопка, для выполнения расчета, то выводим на экран
// расчет нашей таблицы.
if (c == rasch)
{

// Проинициализируем строку вывода пустым значением
ss = new String("");

// Получим значение из текстового поля ввода
si= tf.getString();

// Возьмем из нее, на всякий случай, только первую цифру
si = si.substring(0, 1);

// Преобразуем строку в число
Integer ki= Integer.valueOf(si);

// Арифметические операции с классами не производят.
// Присвоим числовой переменной значение из поля класса.
int k = ki.intValue();

// Организуем цикл вычисления результатов таблицы
for(int i=1; i<11; i++)
{

// Получим произведение
int p = i*k;

// Числовое значение преобразуем в строку
ki = new Integer(p);
sp= ki.toString();

// Получим строчную составляющую второго сомножителя
ki = new Integer(i);
sm= ki.toString();

// Сформируем строку с таблицей
ss = ss + si + " x " + sm + " = " + sp + "\n";

}
// Конец цикла формирования

// Создадим объект текстовое поле.
TextBox t = new TextBox("Результат", ss, 256, 0);

// добавим к этому объекту команду возврата для ввода нового сомножителя.
t.addCommand(vvod);
// И еще команду выхода
t.addCommand(exit);

// Укажем, что теперь интерфейс должен воспринимать команды от
// объекта: текстовое поле.
t.setCommandListener(this);

// Отобразим объект текстовое поле на экране.
Display.getDisplay(this).setCurrent(t);

}
// Конец обработки команды расчета

}
// Конец обработки реакции на команды

// Реализация обязательных методов класса
protected void destroyApp(boolean unconditional) {}

protected void pauseApp() {}
}
 


    Да, это вам не Basic и не Pascal, но зато эта программа будет выполняться
на любом мобильном устройстве, любого производителя, у которого есть
поддержка JAVA программ.

 

  Назад На главную Вперед  

Другая информатика. (C) Публикация на draginf.ru. При использовании материалов ссылка на сайт обязательна.