Select your language:

Home Главная | Registration Регистрация | Login Вход

Menu Меню сайта
Statistics Статистика

Total online: Онлайн всего: 1
Guests: Гостей: 1
Members: Пользователей: 0
Study entry Форма входа
Логин:
Пароль:
Забыл пароль | Регистрация

Ссылки:

s2.setDefaultCommand(perexodHyperlink); s2.setltemCommandListener(this); my form, append (s2) ; / / создать текст в виде кнопки Stringltem s3 = new

S С r i ngIС em С"Кнопка"," Опции",Itern.BUTTON); s3, setDefaultCommand(perexodButton),-s3. setltemCommaridListener(this),-myform.append(s3) ; myform.addCommand(exitMidlet); myform.setCommandListener(this); mydisplay. setCurrent (myform) ,- j

}

protected void destroyApp (boolean unconditional> { protected void pauseAppO О

// обработчик класса itemCommandListener public void commanclAct ion (Command с, Item i) {

// переход в окно опций if (с == perexodButton)

{

Form f 1 = new Form ( "Опции" ) ; fl.append("НеобходимыеОпции") ; fl.addCommand(exitMidlet); fl. addCommand (vozvrat) ; fl.setCommandListener(this); mydisplay.setCurrent(fl) ;

}

// переход по гиперссылке if (c == perexodHyperlink) { ■

Form f2 = new Form ( "Издательство ДМК" )

f 2 . append ( "Сайт издательства ДМК") ;

f2 .addCommand(exitMidlet);

f2 . addCommand (vozvrat) ;

f2 .setCommandListener(this),■

mydisplay.setCurrent(f2) ;

}

}

public void commandAct ion (Command с, Displayable d {

В коде листинга 6.4 для наглядности не использовался конструктор основного класса MmuieTaMainClassStringltem, но добавлялся, как уже упоминалось новый интерфейс ItemCommandListener для установки обработки команд перехода в приложении. В методе start Ар р ^) происходит создание пустой формы для класса Form и интеграция класса String It em. В строке кода:

Stringltem si = new Stringltem( "Метку", "Текст");

Создается простой статический текст и выводится на дисплей телефона. Следующий блок кода:

Stringltem s2 = new Stringltem("Гиперссылка", "www.dmk.ru",Item.HYPERLINK) ,-

s2. setDefaultCommand(perexodHyperlink) ;

s2.setltemCommandListener(this)j

myform.append(s2);

Stringltem s3 = new

Stringltem("KHonKa","Опции"»,Item.BUTTON);

s3. setDefaultCommand(perexodButton) ,-

s3.setltemCommandListener(this);

myform.append(s3) ;

формирует текст на экране телефона, назначив для него обработчик событий при помощи метода setItemCommandListener(). Можно получить текст в виде активной ссылки. При создании объекта s2 класса Stringltem использовался конструктор с тремя параметрами. Последний параметр этого конструктора как раз и отвечает за вид создаваемой ссылки. Была создана гиперссылка с помощью константы HYPERLINK. Блоком кода с объектом s3 уже создавалась кнопка. Эта кнопка является так же простым статическим текстом, но оформленным в виде прямоугольной кнопки. Объекту s3 также назначается обработчик событий методом setltemCommandListener () , благодаря чему и получается активная ссылка. Выбрав ее можно перейти в нужное место в приложении.

Теперь наша программа имеет два одноименных обработчика событий с разными параметрами, представленными двумя интерфейсами CommandListener. и ItemCommandListener. Обработчик событий созданный при помощи метода commandAct ion (Command с. Item i), еле дит за двумя активными ссылками,

// выход из приложения if(c == exitMidlet)

destroyApp(false); notifyDestroyed () ;

}

// возврат в основную форму

if(c == vozvrat) mydisplay.setCurrent(myform) ;

) }

Рис. 6.6. Элементы класса

выполненными в виде гиперссылки и кнопки. Выбрав одну из активных ссылок и воспользовавшись соответственной командой перехода perexodButton - для кнопки и ре-rexodHyperlink, вы попадете на экран с новой формой и информационной надписью. Оба новых экрана созданы классом Form, где также имеются две команды: exitMidlet-для выхода из приложения и vozvrat - для возврата в основное окно. Эти две команды обрабатываются своим методом commandAction(Command с, Displayable d) интерфейса CommandListener. Для того, чтобы создать активную ссылку, необходимо воспользоваться интерфейсом ItemCommandListener, реализовав метод commandAction () для обработки необходимых событий. Рис. 6.6 показывает экран эмулятора с несколькими элементами класса Stringltem.

6.2.5. Класс Spacer

Класс Spacer подвигает элемент на экране телефона, создавая тем самым свободное пространство с указанными размерами. Именно за создание свободного пространства на экране отвечает класс Spacer. При создании объекта класса используется один конструктор с двумя параметрами, при помощи которых задается создаваемое пространство на экране. Конструктор класса Spacer выглядит следующим образом:

public Spacer(int minWidth,int minHeight) ; .

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

□ minWidth - ширина в пикселях;

□ minHeight - высота в пикселях.

Класс Spacer имеет четыре метода, все они просты и не нуждаются в пояснениях, в приложении 2 находится справочник по платформе Java 2 ME, в котором вы сможете найти описание существующих методов класса Spacer. Чтобы показать работу класса Spacer, рассмотрим простой пример, где создается область в пятьдесят пикселей по ширине и ноль по высоте, благодаря чему элемент, размещенный в форме, сдвигается на указанное пространство вправо. В качестве элемента встроенного в форму используется класс Text Fie Id. В листинге 6.5 дается исходный код примера, который можно найти на компакт-диске в папке \Code\Listing6_5\src.

I * *

Листинг 6.5

■Класс Spacer

V

imporji javax.microedition.midlet* * j 1 import javax.microedition.lcdui . * ;

public class MainClassSpacer extends MIDlet implements

CommandListener

{

ff команда выхода из приложения

private Command exitMidlet = new Command ( "Выход" , Command. EXIT, 0) ,-

// объект класса DateField private Spacer sp;

// объект клас ca Form private Form my form;

// объект mydisplay представляет экран телефона private Display mydisplay;

public MainClassSpacer(>

{

mydisplay = Display .getDisplay (this) ; }

public void startAppO {

/ / . инициализируем объект sp sp = new Spacer (50, 0 ) ;

// создаем форму при помощи объекта Form myform = new Form("Класс Spacer"); *// добавить объект sp myform. append (sp) ; myform.append(new

TextField("Метку" , "Текст" ,20,TextField.ANY)) ; myform.addCommand(exitMidlet); myform.setCommandListener(this); / / отразить текущий дисплей mydisplay. setCurrent (my form);

}

i

public void pauseApp ( ) {}

public void, destroyApp (booleanunconditional) {}

public void commandAct ion (Command С, Displayable d)

Рис 6.7. Пространство созданное классом Spacer

// выход из приложения if(c == exitMidlet)

1 Ч

destroyApp(false); notifyDestroyedО;

)

} }

В листинге 6.5 создается рабочий класс Main-ClassSpacer и форма на основе класса Form. Объявляется объект sp для класса Spacer и инициализируется в методе startApp * При инициализации объекта sp используются два значения для параметров, создавая тем самым пустое пространство с левой стороны от текстового поля, созданного при помощи класса TextField. Эмулятор изображенный на рис. 6.7 показывает работу программы из листинга 6.5.

Класс Spacer был добавлен в Java 2 ME для профиля MIDP 2.0, нельзя сказать, что этот элемент жизненно необходим, но бывают случаи, когда использование класса Spacer облегчаетработу программиста.

6.2.6. Класс Imageltem

С помощью класса Imageltem возможна загрузка изображения в форму представленную классом Form. Изображением может быть любая картинка формата PNG (Portable Network Graphics - формат портативной сетевой графики), выполненная в виде иконки, фотографии, заставки, фона и так и далее. Имеются два конструктора класса Imageltem. Первый конструктор содержит четыре параметра, рассмотрим этот конструктор:

public Imageltem(String label, Image img, int layout j

String altText)

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

□ label - метка;

О img - объект класса Image, содержащий изображение;

□ layout - форматирует загружаемое изображение на экране телефона, с помощью использование следующих директив:

□ public static final int LAYOuT_DEFAULT - размещение изображения по умолчанию;

□ public static final int LAYOUT_LEFT - размещение изображения со сдвигом к левой стороне экрана;

Q public static final int LAYOUTRIGHT - размещение изображения со сдвигом к правой стороне экрана;

Q public static final int LAYO UTC ENTER - размещение изображения со сдвигом к центру экрана.

Q altText - информационный текст, используемый в замен загружаемого изображения. Если текст не используется — этот параметр нужно установить в значение null.

Второй конструктор класса* Imageltem имеет на один параметр больше и выглядит следующим образом:

public Imageltem (String label. Image img, int layout, String altText int appearanceMode)

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

□ label - метка;

Q img — объект класса Image, содержащий изображение; Q layout - форматирование загружаемого изображения на экране телефона; D altText - текст, использующийся в замен загружаемого изображения; - Q appearanceMode - этот параметр содержит ряд значений: О BUTTON - создает кнопку с текстом; Q HYPERLINK- создаетгиперссылку;

О LAYO UTB OTTO М - выравнивание к нижней части экрана; Q LAYOUTC ENTER - выравнивание по центру экрана; Q LAYOUTJTOP - выравнивание к верхней части экрана;

□ LAYOUT_LEFT - выравнивание к левой части экрана;

О LAYO UTRIGHT - выравнивание к правой части экрана.

С помощью этих значений можно создать активную ссылку и оформить изображение в виде кнопки или гипер ссылки. В разделе 4.9 при рассмотрении класса Stringltem мы уже сталкивались с этими значениями, создавая статический текст в виде кнопки и гиперссылки.

При загрузке изображений с помощью класса Imageltem существует ряд нюансов, на которые необходимо обратить внимание. Класс Imageltem является подклассом класса Image, прежде чем воспользоваться классом Imageltem, необходимо создать объект класса Image. Затем поместить или загрузить в объект класса Image изображение и только потом воспользоваться классом Imageltem для размещения изображения на экране представленного объектом класса Form. Создавая объект класса Imageltem, вы создаете своего рода контейнер для содержания ссылки на объект Image. Рассмотрим небольшой фрагмент кода, иллюстрирующий создание и загрузку изображения:

Первым делом создается объект! класса Image, после чего происходит загт рузка необходимого Изображения посредством вызова метода create Image () класса Image. Далее создается объект in класса Imageltem, который будет содержать ссылку на объект image.

Изображение, загружаемое в приложение, может находиться в любом месте рабочего каталога. Приисп ользовании, например J2MEWirelessTollkit2. ^изображение лучше поме стить в папку \ге&. Эта папка по умолчанию для файлов ресурса к разрабатываемому приложению и в этом случае запись /ris.png будет обращаться кпапке \res. Если вы хотите использовать другую папку, то необходимо указать весв путь при загрузке изображения, например:

Image ikonl = Image.createlmage("/Ikon/Level2/ikonl.png");

Рассмотрим пример загрузки изображения на экран в виде фона В качестве изображенияпослужитфотография автора этой книги, которую мы загрузим и выведем на экран телефона. Код примера содержится в листинге 6.6 и папке \Code\Listing6_6\src на компакт-диске.

/**

Листинг 6.6 Класс Imageltem */

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

public class MainClassImageltem extends MIDlet implements CommandListener

{

/ / команда выхода из приложения

private Command exitMidlet = new Command("Выход"r Command.EXIT, 1);

// объект класса Form

private Form myform = new Form("Изображение");

// объект mydisplay представляет экран телефона private Display mydisplay;

public MainClassImageltem()

mydisplay = Display.getDisplay(this) ,-

}

Рис 6.8. Изображение, загруженное при помощи класса Imageltem

ных эмуляторах, рассмотренных в главе 4. На рис 6.8 показан эмулятор с изображением на экране фотографии.

6.2.7. Класс Gauge

С помощью класса Gauge создается графический измеритель различных процессов. То есть, возможно осуществить графическое отображение, например процесса загрузки файла, сохранения игры, поиска информации и тд. Представление любого из процессов в графическом виде, дает возможность создать красивое интерактивное приложение. Визуальное отображение процесса осуществляется в виде заданного по размеру горизонтального столбца, который закрашивается слева направо по мере выполнения процесса. сожалению, определенного стандарта в графическом представлении, скажем того же столбца, не существует и каждый из производителей представляет свой разработанный вид графического контекста. На рис 6.9, изображен эмулятор телефона с графическим измерителем процесса.

Класс Gauge имеет всего один конструктор, необходимый при создании объекта этого класса. Разберем конструктор класса Gauge:

public Gauge (String label, boolean interactive, int maxValue, int initialValue)

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

□ label - метка или название процесса связанного с объектом Gauge;

□ interactive - имеются два значения: true для интерактивного режима и false - для не интерактивного режима;

□ maxValue - максимальное значение, задающее диапазон длительности всего процесса. Может быть установлено при помощи значения INDEFINITE;

□ static int INDEFINITE - специальное значение, устанавливающее максимальную величину при неизвестном диапазоне течения всего процесса;

□ initialValue - параметр может быть инициализирован значением от нуля идо значения в параметре maxValue. Этим значением инициализируется начальный отсчет, от которого происходит увеличение визуального представления работы процесса. Кроме числовых значений возможно применение заданных констант:

□ static int C0NTlNU0US_lDLE - задает непрерывное циклическое течение процесса для не интерактивного режима при не определенном диапазоне;

Рис 6.9. Эмуляторы телефонов, показывающие использование класса Gauge

О static int CONTINUOUS_RUNNING-задаетнепрерывное бегущее течение процесса для не интерактивного режима при неопределенном диапазоне;

□ static int INCREMENTAL_IDLE -задает пошаговое циклическое течение процесса для не интерактивного режима при неопределенном диапазоне;

□ static int INCREMENTAL UPDATING - задает пошаговое обновление течения процесса для не интерактивного режима при неопределенном диапазоне.

Методы класса Gauge

Методы, имеющиеся в составе класса Gauge, позволяют настраивать графическое отображение течение процесса на экране телефона, рассмотрим некоторые из методов.

О void addCommand (Command cmd) - добавляет команду;

□ int getMaxValue () — получает значение максимального диапазона работы процесса;

□ int get Value () - получает текущее значение в процессе работы;

□ void setltemCommandListener(ItemCommandListener 1)-устанавливает обработчик собьггий;

□ void setLabel (String label) - устанавливает метку для элемента; О void setLayout (int layout) —устанавливает директивы для элемента;

□ void setMaxValue (int maxValue) - устанавливает максимальное значение течения процесса;

О void setPreferredSize (int width, int height) -задаетширину и высоту для графического представления всего течения процесса;

□ void setValue(int value) —устанавливает текущее значение процесса.

В примере создается простой измеритель течения процесса в виде прямоугольника, максимальный диапазон задан значением десять. В листинге 6.7 показано использование класса Gauge. Исходный код примера, также находится на компакт-диске в папке \Code\Listing6_7\src.

/**

Листинг 6.7 Класс Gauge */

import javax.microedition.midlet.*; import javax.microedition. lcdui. * ,-

public class MainClassGauge extends MIDlet implements CommandListener

Для перехода к следующей странице статьи перейдите по вы подающему меню

i

Basket Корзина
Your basket is empty Ваша корзина пуста
'); $(el).append(g); $(g).show(); } _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}}); return false; } function removeBasket(id){ if(lock_buttons) return false; else lock_buttons = 1; $('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title',''); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}}); return false; } function add2Basket(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled'); $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}}); return false; } function buyNow(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled'); $('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}}); return false; } //-->
Search Поиск
Calendar Календарь
«  March Март 2011  »
Mon Пн Tues Вт Wed Ср Thurs Чт Fri Пт Sat Сб Sun Вс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archive records Архив записей

Ссылки:

Rambler's Top100 Все для дома - Бытовая техника, опубликовать информацию о фирме
QLE 88x31

раскрутка сайта в интернете Рейтинг сайтов Товары / Услуги

Copyright MyCorp © 2011 Создать сайт бесплатно

Copyright MyCorp © 2011