Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите перенести программу с Java SE на ME 
V
    Опции темы
Dancer
Дата 22.9.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Platform ME SDK и  WTK в данном случае одно и то же. Это сейчас у Sun  стало называться, платформ бла-бла-бла, а раньше это был просто Wireless Tool Kit (WTK)
Куда ты поставил это дело? Должна быть папка что-то Disk:/bla-bla-bla/WKT_ROOT, назовём её %WTK_HOME% (для удобства)
%WTK_HOME%/apps - там есть примеры приложений с исходниками, их там дохрена, смотри не хочу.
Кстати, я тебе советовал смотреть javadocs которые идут вместе с WTK, ты их нашёл?????
%WTK_HOME%\docs\api - документация
%WTK_HOME%\docs\api\midp-2.0\index.html - как только научишься пользоваться этими доками, так сразу отпадёт куча ненужных вопросов.
Ну уж а как до кода с примерами доберёшься, думаю их остаться должно будет ещё меньше.

у тебя есть display - это твоё окошко (для твоего приложение) в "реальный мир" smile
display.setCurrent(что-то, что наследовано от Displayable) то есть, Form, List, Canvas 
вот и пользуй это дело: display.setCurrent(myform);
когда произошло нажатие на кнопку, пришёл event ты это дело обработал, понимаешь что нужно другую формочку на экран пихнуть, вот и пихни display.setCurrent(myform);

Ну, а  W0LF,  тебе правильно написал, делай статический метод, для получения дисплея, и можешь это дело юзать в любом своём классе. Вызываться это будет так: HelloMIDlet.getDisplay().setCurretn(bla-bla-bla);
Код

public class HelloMIDlet extends MIDlet implements CommandListener {
.....
private static Display display;

public static Display getDisplay() {
    if(display == null) {
        display = Display.getDisplay(this);
    }
    return disp;
}
......
}


Тут похоже всётаки у тебя проблема не с ME, а с Java как с таковой. Ну а по поводу книжек - на русском по ME хороших не видел, но зато ты можешь здесь многому понабраться, как в FAQ, так и в постах, которые уже не поразу написаны. Читай, пробуй.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
susanin
Дата 22.9.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



Цитата(Dancer @  22.9.2009,  17:26 Найти цитируемый пост)
Ну а по поводу книжек - на русском по ME хороших не видел

для такого уровня книжек полно. взять к примеру Е.Л. Буткевич - Пишем программы и игры для сотовых телефонов
PM MAIL   Вверх
Dancer
Дата 22.9.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Цитата(susanin @  22.9.2009,  18:50 Найти цитируемый пост)
для такого уровня книжек полно. взять к примеру Е.Л. Буткевич - Пишем программы и игры для сотовых телефонов

В книжках такого уровня ошибок было столько....., что мама не горюй, по ним лучше не учиться, либо не сможешь, либо плохому научат (хотя, может быть в последних изданиях всё стало лучше), то что видел - откровенные "какакшки" были.
Да и по правде говоря, кроме javadocs который с WTK идёт, по большому счёту больше ничего и не нужно. (по себе помню)

всё имхо, конечно smile


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
susanin
Дата 22.9.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



Цитата(Dancer @  22.9.2009,  19:29 Найти цитируемый пост)
Да и по правде говоря, кроме javadocs который с WTK идёт, по большому счёту больше ничего и не нужно. (по себе помню)

сори за офтоп smile 
а вы не скажете как явадоки из se добавить в me? потому что если пишешь на me, то явадоков на функции из se не видно...что уж только не пробовал...скачивал архивы с сайта с документацией..добавлял их к стандартным явадокам...все равно не видно
PM MAIL   Вверх
Dancer
Дата 23.9.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Ну, вообще то, ME доки в себе всё что нужно имеют и только эти методы можно будет использовать из java.lang java.io и т.д. (имею ввиду исползьовать в ME коде)
С SE вообще не стоит это дело как-то пытаться пересекать. Я если честно не понял для чего это нужно. 
Если хочется видеть и то и то, ну в браузере делаешь закладки на нужные index.html и пользуешь smile. Когда нужно SE открываешь одну закладку, нужно ME - другую. причём для ME сделано не очень скажем так хорошо, разные API в разных папках лежат, поэтому либо самому заходить в папку с доками выбирать папку с API и уже оттуда пускать index.html либо сделать закладки в браузере на всё что нужно (в общем, почему бы и нет)
Можно конечно пойти ещё одним "хитрожопым" путём и вбабахать линки на java.microedition.* в html файлы, которые идут с SE.
Но пожинить это дело просто так не получитсья (хотя, как я уже ранее писал, необходимости не вижу)

Если бы были исходники классов ME с /** */ то можно было бы это дело подложить в паку вместе с src SE, пробежаться по всему этому делу javadoc командой и получить новые доки, куда эти пакеты уже будут включены. 



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
W0LF
Дата 23.9.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



здается мне, что имелось ввиду подключение джавадока в IDE, так иногда быстрее, туда же обычно и исходники фреймворков лепят, чтоб можно было и исходники смотреть. смотря какая IDE, в Intellij Idea, например, просто в настройках проекта можно было подсунуть или javadoc или sources, и все.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
susanin
Дата 23.9.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



Цитата(W0LF @  23.9.2009,  11:02 Найти цитируемый пост)
здается мне, что имелось ввиду подключение джавадока в IDE

именно!
например хочу я создать в me приложении объект класса Formatter
Formatter f = new Formatter();
но явадока на этот класс в me нет...только в se...не создавать же проект se только для того чтобы посмотреть инфу на этот класс...
PM MAIL   Вверх
Dancer
Дата 23.9.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



ЭЭЭЭЭ
как бы сказать то...... 
Я конечно дурак, но не на столько.
Если мы будем использовать класс Formatter в своём ME приложении, то компиляция то пройдёт, этого добиться можно, в этом я не сомневаюсь, но как потом будет проходить преверификация??? Она же не пройдёт. И уж тем более, даже если сможем обмануть преверифайер, ну или создать JAR обойдя preverify и зальём в телефон и запустим это дело, на телефоне это упадёт!!!!!
Так как нет поддержки данного класса производителем, потому что этот класс не входит в набор API.

То нахрена нам его пользовать, если на реальном аппарате это никто не поддерживает????

Тут либо пишем свой Formatter (в своём проекте, своего приложения) и его пользуем, на что IDE впринципе нормально реагирует и покажет и методы этого класса и т.д., если ещё и коментарии в нём в стиле javadoc то и все остальные прелести "прогресса" будут то же.

Ну или как W0LF писал, можно это дело поженить в IntelliJ, в NetBeans тоже можно такое сделать. Сказать какие либы пользуются в проекте, где лежать src, где javadocs. Это уже всё зависит от пользуемого IDE, сейчас они сильно продвинутые стали, так что полазий в настройках smile. Но вот реального применения, я чего-то пока не увидел/не понял (для ЧЕГО????)


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
susanin
Дата 23.9.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



Цитата(Dancer @  23.9.2009,  16:52 Найти цитируемый пост)
я чего-то пока не увидел/не понял (для ЧЕГО????)

ну вообще хотел сделать форматированный ввод в textfield...думал для этого попробовать какие то средства из se...но там похоже таких тоже нет...

Цитата(Dancer @  23.9.2009,  16:52 Найти цитируемый пост)
Так как нет поддержки данного класса производителем, потому что этот класс не входит в набор API.

т.е. если я правильно понял в sdk для me есть классы и соответственно явадоки к ним только те, которые поддерживаются телефоном, и другие (кроме самописных) классы использовать не вариант?
PM MAIL   Вверх
Dancer
Дата 23.9.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Цитата(susanin @  23.9.2009,  17:10 Найти цитируемый пост)
т.е. если я правильно понял в sdk для me есть классы и соответственно явадоки к ним только те, которые поддерживаются телефоном, и другие (кроме самописных) классы использовать не вариант?

УГУ, 99,9% true smile

только не в SDK, скажем так, а в Sun спецификациях, которые называются JSR (слышал навреное?), так вот, именно эту спецификацию производители аппаратов должны поддерживать, то есть в телефоне будут доступны именно те классы и методы, которые представленны в той или спецификации. Ну и производитель соответственно презентует, какие JSR он поддержал.
Так же, производитель может сделать поддержку собсвенных классов, которые могут быть доступны пользователю, а могут быть и не доступны, но эти классы никак не будут проходить под каким либо JSR.
Вот например, говориться что мобилка поддерживает JSR-75 - это говорит о том, что мидлеты могут ползовать классы для обращения к PhoneBook, базе Events (календарь в мобиле с ремайндерами), и иметь доступ к файловой системе. То есть в своём мидлете можно будет пользовать javax.microedition.pim.* методы и быть уверенным, что аппараты которые поддерживают данный JSR имеют одинаковый интерефейс, и будут работать в принципе одинаково с одним и тем же кодом ;).
MIDP2.0 - JSR-118
CLDC-1.0 - JSR-37
MultiMedia - JSR-135
Bluetooth - JSR-92
SMS/MMS - JSR-120/JSR-205
и т.д.

На эту тему тут уже не поразу было писано, пошукай конфу.
У нас "песочница" очень сильно ограничена, и плюс ко всему, то что ты сможешь пускануть на компе под эмулятором, не факт что один в одни будет работать/отображатсья на конечном устройстве.
Сам посчитай сколько сопряжений интерфейсов проходит. smile



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
susanin
Дата 23.9.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



Dancer, большое спасибо за разъяснения! плюсую! smile теперь много для себя пояснил!
PM MAIL   Вверх
W0LF
Дата 23.9.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



 smile 
там на шапке темы есть кнопочка со смайликом - "пометить как решенный", ее желательно плиз тыцать, когда вопрос разрешился.

Это сообщение отредактировал(а) W0LF - 23.9.2009, 19:40


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
bncom
Дата 25.9.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 2.11.2005

Репутация: нет
Всего: 1



Решил подключить к НетБинсу плагин поддержки J2ME. Скачал. установил, все как положено. Затем НетБинс нашел на компе у меня SDK Me, импортировал то, что ему нужно было (точнее, я как понял, он просто у себя порописал пути до моего установленного SDK Me и все).

Создюа новый проект, пакет с классами, вставляю туда код из моего проекта, который был написан в Java Platform ME SDK. Как бы все красиво и ладненько. Запускаю на исполнение, бла-бла... и тут ошибка выскакивает:

Updating application descriptor: C:\Users\admin\Documents\NetBeansProjects\Lab1\dist\Lab1.jad
Application descriptor does not declare any MIDlet. Direct execution is not allowed.
Generated "C:\Users\admin\Documents\NetBeansProjects\Lab1\dist\Lab1.jar" is 3868 bytes.

Эмулятор запускается, но программу не запускает.

Вопрос: из-за чего это?

--------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер 
PM MAIL   Вверх
eugine_s
Дата 25.9.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(bncom @  25.9.2009,  13:19 Найти цитируемый пост)
Вопрос: из-за чего это?


Скорее всего в свойствах проекта не прописал класс мидлета. 

Для проверки можешь глянуть вот сюда: 
C:\Users\admin\Documents\NetBeansProjects\Lab1\dist\Lab1.jad

и найти в нем строку MIDlet-1: 

В ней должно быть MIDlet-1: Midlet-Name, Midlet-Icon, Midlet-MainClass (Midlet-Icon может быть пустым)
PM MAIL   Вверх
bncom
Дата 25.9.2009, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 2.11.2005

Репутация: нет
Всего: 1



Цитата(eugine_s @  25.9.2009,  14:53 Найти цитируемый пост)
Скорее всего в свойствах проекта не прописал класс мидлета. 
Так точно, было не прописано.

Спс за помощь.

--------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0939 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.