السلام عليكم و رحمة الله و بركاته
مكتبة lwuit لعمل واجهة مستخدم متقدم بالاعتماد على الرسم على الكانفا
للخروج عن الصورة المألوفة للفورم و اليست العادية في الجوال
شاهد فيديو الديمو و يمكن تحميلها و ستجد ملفات و أمثلة تعليمية
السلام عليكم و رحمة الله و بركاته
مكتبة lwuit لعمل واجهة مستخدم متقدم بالاعتماد على الرسم على الكانفا
للخروج عن الصورة المألوفة للفورم و اليست العادية في الجوال
شاهد فيديو الديمو و يمكن تحميلها و ستجد ملفات و أمثلة تعليمية
المشكلة هي ان هذه المكتبة كان من المفترض ان يتم اعتمادها في اصدارات netbeans الا انه لم يتم اعتمادها لأنها لا تزال unstable
بالإضافة الى ان الكتابة باللغة العربية تظهر بشكل معكوس على جوالات sonyErricsson
وهي ليست مشكلة في الlw بل عند sony
فقط احببت انا اضيف للعلم
كلامك صحيح
ايضا فيها عيب
1- ثقيلة على الاجهزة المتوسطة و الصغيرة
2- حجمها كبير نسبيا
أنا أظن أن هذه المكتبه سيئه من نواحي عديده أهمها ما تم ذكره والسبب في ذلك أنهم يقومون بعمل جار واحد لجميع الهواتف أي انهم يقومون بعمليه ال Porting في ال Runtime وهذا أدى الى كبر حجم المكتبه وبطؤها الشديد الذي من أسبابه أنهم يحاولوت التعرف على نوع الموبايل أيضا وقت التنفيذ وهي عمليه مكلفه.
باختصار أعتقد أن هذا التوجه خاطئ في الوقت الحالي وأكبر دليل على ذلك مكتبه polish التي تستطيع انتاج جار مختلف لكل موبايل وبالتالي تحصل على برنامج أقل حجما و أكثر كفاءه.
اسف اخي الا اني لا اتفق معك في بعض النقاط
اولا : هي ليست ثقلية على الاجهزة حتى المتوسطة منها و هذا مالمسته
ثانيا : يكفي ان sun نفسها فكرت في اعتمادها و لم استبعدت ال j2me polish بالاضافة لوجود بعض المشاكل في الj2me polish
بالاضافة الى وجود اظهارات و ميزات اكثر من رائعة في هذه المكتبة و بنفس الوقت تقدم مواصفات الاجهزة المحمولة
الا ان ماينقص هو دعم ثنائي الاتجاه اي من اليمين الى اليسار وليس اللغة العربية او غيرها لإن اللغة هي عبارة عن unicode وبالتالي هي مدعومة مسبقا الا ان ال rtl هو ماينقص
و اظن انه سيتم دعمها ليس من اجل اللغة العربية طبعا بل من اجل اللغة العبرية التي هي ايضا لغة ثنائية الاتجاه
بالإضافة الى اعتمدها مع ال netbeans في الاصدارت القادمة مع انه كان من المفترض اعتمادها في هذا الاصدار ال 6.7 إلا انها لا تزال غير مستقرة
هذا مااعلمه و ربما اجهل الكثير
وشكرا للتواصل
تم تعديل هذه المشاركة بواسطة mohref في 7 مايو 2009 في 01:01
وعليكــم السـلام ورحمة الله وبركاتـه..
أولا أخي Sun لم تعتمدها بل هي من قام ببنائها أصلا وهذا لا يعني أنها الأفضل, أما من ناحيه أنها ثقيله فنعم لقد جربتها على ال Nokia N73 ولنعتبره جهاز متوسط وكانت النتيجه وجود بطؤ ملاحظ.
ثانيا نعم أنا أتفق معك من ناحيه أن تطور الأجهزه يمكن أن يعطيها الأسبقيه لكني أعتقد أن الوقت لم يحن بعد.
ثالثا أعود وأركز على نقطه ال Porting في ال Runtime وأعطيك هذا المثال من الكود المصدري وهم يستخدمونه من أجل معرفه الازرار الموجوده على الهاتف وقيمها:
private void setKnownSoftKeyCodes() {
try {
Class.forName("com.siemens.mp.game.Light");
leftSK[0] = -1;
rightSK[0] = -4;
clearSK = -12;
backspaceSK = -12;
return;
} catch (ClassNotFoundException _ex) {
}
try {
Class.forName("com.motorola.phonebook.PhoneBookRecord");
leftSK[0] = -21;
rightSK[0] = -22;
return;
//maybe Motorola A1000 has different keyCodes
//Left soft key: Key code -10,
//Right soft key: Key code -11,
} catch (ClassNotFoundException _ex) {
}
try {
Class.forName("com.nokia.mid.ui.FullCanvas");
leftSK[0] = -6;
rightSK[0] = -7;
clearSK = -8;
backspaceSK = -8;
// prevent this from breaking Sony Ericsson devices
if (System.getProperty("microedition.platform").toUpperCase().indexOf("NOKIA") >= 0) {
backspaceSK = 8;
}
return;
} catch (ClassNotFoundException _ex) {
}
try {
Class.forName("net.rim.device.api.system.Application");
//there are no soft keys on the Blackberry
//instead use the Q and P keys
leftSK[0] = 113;
//some BB devices use O as the most right key
rightSK = new int[]{112, 111};
clearSK = 8;
backspaceSK = 8;
return;
} catch (ClassNotFoundException ex) {
}
// detecting LG
try {
// iden device
Class.forName("com.mot.iden.util.Base64");
clearSK = -5000;
backspaceSK = -5000;
leftSK[0] = -20;
rightSK[0] = -21;
setFireValue(-23);
return;
} catch (Throwable ex) {
}
try {
Class.forName("mmpp.media.MediaPlayer");
clearSK = -204;
backspaceSK = -204;
} catch (ClassNotFoundException ex) {
}
try {
if (canvas.getKeyName(-6).toUpperCase().indexOf("SOFT") >= 0) {
leftSK[0] = -6;
rightSK[0] = -7;
return;
}
if (canvas.getKeyName(21).toUpperCase().indexOf("SOFT") >= 0) {
leftSK[0] = 21;
rightSK[0] = 22;
return;
}
} catch (Exception ex) {
}
boolean leftInit = false;
boolean rightInit = false;
for (int i = -127; i < 127; i++) {
if (leftInit && rightInit) { //I have added this if to avoid unnecessary loops
return; //but the main reason is that sometimes after the correct negative values were initialized also positive
} // keycodes had "soft" in the name.
try {
if (canvas.getKeyName(i).toUpperCase().indexOf("SOFT") < 0) {
continue;
}
if (canvas.getKeyName(i).indexOf("1") >= 0) {
leftSK[0] = i;
leftInit = true;
}
if (canvas.getKeyName(i).indexOf("2") >= 0) {
rightSK[0] = i;
rightInit = true;
}
continue;
} catch (Exception ex) {
}
}
}هذه العمليه هي مثال على العمليات المكلفه التي تقوم بها هذه المكتبه بالاضافه على اعتراضي على المبدأ فما داعي وجود كود يخص هاتف LG في jar لهاتف Nokia.
لاحظ وجود ال comment الذي يخص هاتف ال Motorola A1000. هو يقول أنه غير متأكد من القيمه وأنا أقول لك أن القيمه فعلا مختلفه. هل تعلم ما هو الحل في مثل هذه الحاله هو وجود ملفين مختلفين لهواتف ال Motorola أحدها به القيمه الأولى والأخر يحمل القيمه الثانيه أي أنك في النهايه ستضطر لعمل Porting في ال Compile Time .
تم تعديل هذه المشاركة بواسطة muqawem في 7 مايو 2009 في 22:52
أخي معك كل الحق في هذه النقطة التي تطرحها
لكن انا قمت بتجريب هذه المكتبة على اجهزة عادية مثل sonyEricssonk800 و غيره و على nokia 5800
و كان ادائها جيدا جدا
على كل حال شكرا على هذا التنبيه و طرحك لهذا الكود و اعذرني
اخ mohref
لا نخطئك بما تقول
لكن حسب استخدامك لها قد ينتج فيها بطء او عكسه
مثلا اذا اضفت اكثر من Command 2 تظهر عندك Menu فيها باقي الكومندز
لاحظ بطء استجابتها عند النقر على ال Menu
وايضا حاول استخدام ال Transactions و لاحظ البطء مع ان الحركة ليست بالكثير او بالاحرى لا يتوجب ان تكون متقطعة
و لكن نعود و نقول انها مكتبة جميلة جدا و غنية
و لكني لا انصح باستخدامها الا في حالات لا تهم السرعة في البرنامج و يهم المنظر فقط
السلام عليكم جميعا
أنا شخص تعاملت معها وجربتها على Nokia6630 & Nokia N70 $ SonyEricsson & motorolla
هي بنيت للاجهزة ذات القدرات العالية والدليل على ذلك انها فقط تنزل على الاجهزة CLD1.1 & MIDP2.0
أما بالنسبة لثقلها على الاجهزة فهي ثقيلة نوعا ما ولكن الثقل ايضا يكون بسبب عملية تشغيل KJVM اي ان الجافا هي تحتاج لوقت حتى تكون قادرة على تنفيذ البرنامج
عند عمل Application بسيط لا يحتوي اي شيء ولكن يحتوي على المكتبة يكون حجمه391 كب
أما بالنسبةلدعم هذه المكتبة للغة العربية فانها تدعم اللغة العربية وكافة اللغات بثنائية الاتجاه من اليمين الى اليسار ومن اليسار الى اليمين طبعا.
يدعم ما يدعى Localization اي تستطيع كتابة القوائم بلغتين او اكثر وتفحص الجهاز اثناء Runtime وتعرض اللغة حسب لغة الجهاز أو حسبما تختاره مسبقا.
انا شخصيا درست هذه المكتبة وتعاملت اشياء بسيطة فيها واصبحت لدي معرفة فيها.
يا ريت اي شخص عندو دروس او اشاء اخرى عن هذه المكتبة وكيفية التعامل معها يعم الفائدة على الجميع
شكرا لكم ولموضوعكم الشيق
تم تعديل هذه المشاركة بواسطة mohammad1kaied في 19 أبريل 2010 في 18:47