Программирование мобильных телефонов на Java



6.2.2. Класс DateField



Это, пожалуй, самый простой класс из всех имеющихся в иерархии класса Item. С помощью класса DateField возможно произвести установку необходимой даты и времени. Используемый интерфейс для отображения даты и времени элементарный и практически все действия по установке заданных параметров даты и времени уже реализованы программно. На рис. 6.4 изображен эмулятор телефона, отображающий текущее время.

В составе класса DateField имеется в наличии два конструктора, для создания объектов этого класса, рассмотрим их. Первый конструктор:

public DateField(String label, int mode);


Параметры конструктора класса DateField:

  •  label - строка текста;
  •  mode — с помощью этого параметра конструктора, устанавливается, какой именно из компонентов класса DateField будет воссоздан на экране.


Имеется возможность вывести дату с помощью значения DATE, и время, задав значение TIME. Также можно пользоваться комбинированным способом DATE_TIME для отображения обоих компонентов вместе.

Второй конструктор содержит добавочный параметр и позволяет устанавливать время по часовому поясу.

public  DateField(String label, int mode, TimeZone timeZone)


Параметры конструктора класса DateField:

  •  label - строка текста;
  •  mode - установка заданных компонентов класса DateField;
  •  timeZone - это объект класса TimeZone, с помощью которого можно определить часовой пояс. Например:


TimeZone v  =  TimeZone.getTimeZone("GMT");


Класс DateField содержит всего четыре метода:

  •  Date getDate() - возвращает текущую дату;
  •  void setDate(Date date) - устанавливает новую дату;
  •  int get!nputMode() - получает установленные компоненты DATE, TIME или DATA_TIME;
  •  void setlnputMode (int mode) - устанавливает компоненты DATE, TIME или DATE_TIME.



Рис 6.4. Текущее время на экране телефона


Перейдем к программному коду и рассмотрим пример, реализующий вывод на экран даты и времени одновременно. Все, что сейчас от нас требуется — это написание кода основного класса мидлета, создание пустой формы и встраивание в эту форму класса DateField. Также необходимо проследить наличие команды выхода из приложения. Все остальное за нас сделает Jауа 2 ME, создав кнопки перехода и команду сохранения настроек даты и времени. В листинге 6.2 дается полный код примера к этому разделу.

/**
Листинг 6.2 Класс DateField .
*/
import javax.microedition.midlet.*;
 import javax.microedition.Icdui.*;
public  class     MainClassDateField extends MIDlet   implements
CoramandListener
{
// команда выхода из приложения
private Command exitMidlet = new Command(«Выход»,
Command.EXIT, 0);
// объект класса DateField
private DateField dt;
// объект класса Form
private Form myform;.
// объект mydisplay представляет экран телефона
private Display mydisplay;
public MainClassDateField()
{
mydisplay = Display.getDisplay(this);
}
public void startApp()
{
//инициализируем объект dt
dt = new DateField("Дата и Время", DateField.DATE_TIME);
// создаем форму при помощи объекта Form
myform = new Form("Встроенный DateField");
// добавить объект dt
myform,append(dt);
myform.addCommand(exitMidlet);
myform.setCommandListener(this);
// отразить текущий дисплей
mydisplay.setCurrent(myform);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable d)
{
// выход из приложения
if(с = = exitMidlet)     
{
destroyApp(false) ,
notifyDestroyed();
 }
}
 }
 }


В примере создан класс MainClassDateField, соответствующий названию разбираемого класса. Сам по себе пример очень легкий в силу простоты реализации самого класса DateField. Первоначально создается объект dt для класса DateField, после этого происходит его инициализация в методе startАрр (). Создается форма классом Form и объект dt интегрируется в эту форму. Все остальное, а именно: циферблат и календарь, показанные на рис. 6.4, создаются автоматически с помощью эмулятора телефона при выборе одного из элементов класса. В нашем примере был создан объект dt класса DateField, но можно было этого и не делать, а обойтись, например такой простой записью:

Form f = new.Form(new DateField("Дата и Время", DateField.DATE_TIME);


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

После того, как вы откомпилируете этот пример и запустите приложение, на экране появятся два элемента с надписями time и date. Выбрав один из элементов и нажав на кнопку Select, вы попадете, в зависимости от выбора, на экран с календарем или временем, изображенным на рис. 6.4. С помощью джойстика или клавиш перемещения, можно установить необходимые параметры для обоих элементов.

Назад Начало Вперед



Книжный магазин