Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

J2ME
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1215
Страница 1 от 1

Автор:  TheWizard [ Пон Ное 07, 2005 12:09 pm ]
Заглавие:  J2ME

Има ли почва за J2ME тук...

Автор:  Реконструктор [ Пон Ное 07, 2005 12:15 pm ]
Заглавие: 

Има, разбира се. :)

Автор:  TheWizard [ Пон Ное 07, 2005 12:29 pm ]
Заглавие: 

Тогава задавам въпроса...
имам клас public class Project extends MIDlet implements CommandListener
които има class Logo extends Canvas implements Runable
което Logo показва логото за 2 сек после изписва LIST:

Application 1....(extends MIDlet implements CommandListener)
Application 2....(extends MIDlet implements CommandListener)
Exit

Въпроса е как да стартирам Аplication 1

Автор:  0x00 [ Пон Ное 07, 2005 5:23 pm ]
Заглавие: 

Не можеш да invoke-ваш други MIDlets. :D
Направи го така:

Application1MainDisplayable (extends Form/Canvas implements <whatever> )

run-ваш с:

Display.getDisplay(thisMidlet).setCurrent(Application1MainDisplayable);

после exit-а става:

{
runFinalizationRoutines(); //ако има такива
Display.getDisplay(thisMidlet).setCurrent(AppListDisplayable);
}

където AppListDisplayable ти е обекта, с който показваш списъка с приложенията. ( javax.microedition.lcdui.List, няква form-а или там каквото е )

в runFinalizationRoutines() можеш да спираш нишки разни, да затваряш socket-и, да освобождаваш мултимедийни ресурси, etc.

Другото е, че в цялото приложение ще ти трябва instance-а на главния MIDlet заради Display.getDisplay() . (това предполагам го знаеш, ама ще го напиша)

Значи най-удобно става с, един вид, singleton:

public class MainMIDlet extends MIDlet {

public static MainMIDlet instance;

public MainMIDlet() {
instance = this;
}

.......
}

В този случай thisMidlet от по-горе става MainMIDlet.instance .

! Недей да викаш constructor-a на MainMIDlet от кода си, обекта се създава от платформата !

Всъщност ако толкова ти трябват отделни MIDlet-и, можеш да ги наблъскаш в MIDlet suite-a, т.е:

в .jar-a са няколкото MIDlet class-а, а .jad-а съдържа списъка, например :

MIDlet-1: Application1, /res/icons/App1Icon.png, applications.Application1MainMIDlet
MIDlet-2: Application2, /res/icons/App12con.png, applications.Application2MainMIDlet

По този начин, обаче application manager-a на телефона поема изрисуването на менюто, т.е splash sceen-a няма как да го покажеш, защото в този момент твой код все още не е стартиран.


P.S : Интересно ми е какво пишеш, ако не е тайна, разбира се. :wink:

Автор:  TheWizard [ Пон Ное 07, 2005 5:51 pm ]
Заглавие: 

аха - направих ги class App1 extends Form
за application manager-a знам - не пуска сплаша
Мерси...

Автор:  TheWizard [ Сря Ное 09, 2005 12:03 pm ]
Заглавие: 

Въпрос 2
компилатора ми дава грешка на
I = Image.createImage("/LOGO.PNG");
че не било в блок TRY CATCH
try{ I = Image.createImage("/LOGO.PNG"); }catch(Exception e){}

има ли опция в компилатора да се махне да не дава грешка и да го компилира без TRY блок

Автор:  0x00 [ Сря Ное 09, 2005 9:00 pm ]
Заглавие: 

Не, няма начин. Това е checked exception (както впрочем, всички, които не наследяват RuntimeException) и е в спецификата на езика тези exceptions да бъдат задължително хващани или препращани към викащия метод ( което става с добавяне на throws към сигнатурата на метода; например
Код:
public void somethingCanGoWrongHere() throws SomethingWentWrongException { ... }


Ако нямаш предвид някаква обработка на NullPointerException-a (тази не изисква да бъде хващана; можеш да оставиш виртуалната машина да се оправя) или на IOException-а (заради тази компилатора се сърди), които CreateImage(String resourceName) може да хвърли, просто остави catch блока празен. Exception-а ще се смята за обработен и компилаторът няма да бучи.
Аз лично бих null-ирал I особено ако съм ползвал същия поинтер, за да се обръщам към други Image-и по рано в кода и ако съм в настроение: Display.getDisplay(MainMIDlet.instance).setCurrent( new Alert("error loading splash screen") , this); :wink:

Автор:  TheWizard [ Чет Ное 10, 2005 11:48 am ]
Заглавие: 

Хмм, нещо почвам да я намразвам джабата :)..... и на всичкото отгоре char не е 8 byte а 16 - направо ме разбиха :)
0х00 мерси за съдействието - пак ще питам да знаеш :)

Автор:  TheWizard [ Пон Ное 14, 2005 4:51 pm ]
Заглавие: 

МЕ търси LG 8xxx J2ME SDK
сички страници обърна на опаки, писа и на LG и нема да ги е.....
Ама все пак да пита и тук

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/