الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يعمل التطبيق على انواع مختلفة من اجهزة الجوال

مغلق
بدأه mednight في 23 مايو 2007 · 10 رد · 1,360 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

نحن فريق مشروع لدينا 3 اسئلة ولم يبق لنا سوى الله ثم أنتم.. الكثيرون اوصدوا الباب في وجوهنا...بحثنا واجتهدنا ولم نعد الا بخالي الوفاض.. ولا يفصل بيننا وبين موعد التقديم والمناقشة سوى أسبوع فقط..فلجأنا اليكم ..ونرجوكم ان لا تردونا صفر اليدين..

س1/ كيف نجعل التطبيق يعمل على معظم اجهزة الجوال بانظمتها وأنواعها المختلفة(Symbian 90,60...,UIQ,..etc)؟ علما بان التطبيق أنشيء بواسطة الـ Sun Java WTK وبامتداد jar.

س2/ يعتمد التطبيق بشكل رئيس على القوائم، لكن لاحظنا انه عند فتح عناصر قائمة ما والخروج منها ثم العودة اليها ان المحتويات تتكرر وهكذا بعدد مرات فتح هذا العنصر والعودة إليه.كيف نتغلب على هذه المشكلة؟

س3/ ألحقنا بالتطبيق خريطة ابعادها تفوق ابعاد شاشة جهاز الجوال..وعند اختبارها لا يظهر سوى جزء منها ولا نستطيع تحريكها (الى اليمين او اليسار مثلا) !! .هل هناك عناصر تحكم يجب ان نضيفها الى هذا الجزء؟

وجزاكم الله عنا خير مايجزي عباده ...ننتظر الرد بفارغ الصبر

ملاحظة:حاولت وضع الموضوع في قسم J2ME ولكن يظهر لي خطأ في الصفحة فاظطررت لوضع الموضوع هنا

#2

السلام عليكم أخي

أنصحك باستخدام هذا framework ألا و هو www.j2mepolish.org تعطيك مميزات كثيرة و من اهمها عمل التطبيق على أكثر من جهاز

#3

وعليكم السلام

افيدك اني قد قمت بتحميل البرنامج منذ فترة وهو موجود الان بجهازي ولكني لا اعرف كيف اتعامل معه...؟؟؟؟

#4

السلام عليكم

اقتباس
ولم يبق لنا سوى الله ثم أنتم

اخى الفاضل هذا خطاء فالله اولا واخيرآ

اقتباس
س2/ يعتمد التطبيق بشكل رئيس على القوائم، لكن لاحظنا انه عند فتح عناصر قائمة ما والخروج منها ثم العودة اليها ان المحتويات تتكرر وهكذا بعدد مرات فتح هذا العنصر والعودة إليه.كيف نتغلب على هذه المشكلة؟

ان كنت تستخدم طريقة ال stack لتنظيم ظهور والرجوع من القوائم فقم فى الرجوع بعمل pop فقط ولا تقم بتكوين القوائم من جديد

اقتباس
س3/ ألحقنا بالتطبيق خريطة ابعادها تفوق ابعاد شاشة جهاز الجوال..وعند اختبارها لا يظهر سوى جزء منها ولا نستطيع تحريكها (الى اليمين او اليسار مثلا) !! .هل هناك عناصر تحكم يجب ان نضيفها الى هذا الجزء؟

اكيد حضرتك واضعها على canvas فى listener على ال canvas ينادى عند الضغط على اى زورار فممكن تكتب فيه كود يغير الموضوع المعروض من الصوره قد يكون ذلك من خلال تغير ال top,left point

هذا شكل للكود الذى ممكن ينادى عند الضغط فوق او تحت او يمين او شمال

protected void keyPressed(int keyCode)
{
if (keyCode == keyFire)
shootWeapon();
else if (keyCode == keyRight)
moveRight();
...
}
hh.jpg
#5

وعليكم السلام و رحمة الله وبركاتة

اولا علشان تضمن ان المشروع يشتغل على جميع الموبيلات صعبة شوية لان لو المشروع شغال على موبيل من عائلة S70 طبعا لو جيت تنزلة وتشغلة على موبيل من نوع S60 أكيد فى حاجات كتير فى البرنامج مش هتشتغل لان فى إختلاف ف ال specifications بتاعت الموبيلات. انتا ممكن تعمل test للبرنامج بتاعك على أكتر من موبيل بس قبل ما تشتغل على موبيل من الموبيلات أدخل على اللينك

ى http://www.forum.nokia.com/devices

وأعرف أية ال Technologies اللى الموبيل دة بيدعمها وعلى أساسها أبدا أعمل test على الموبيل

بالنسبة للسؤال التانى ممكن أنتا تكون مستخدم vector وكل ما تدخل ع القائمة 1 مثلا بيتم ملى ال vector وإحتمال يكون ال vector دة static وانتا ما تمسحش اللى فية بعد ما يطلع من القائمة وبالتالى بما انة static ومش فاضى تجى تدخل علية مرة تانية تلاقى البيانات اتكررت.

ياريت لو توضح ازاى القايمة اللى بتدخل عليها دى بتملاها ازاى فى الكود

بالنسبة للموضوع دة ممكن تحسب الطول والعرض بتاع الشاشة وعلى أساسها تحط الصورة (أبحث ع النت ع كود بيغير طول و عرض الصورة) وأستخدمنا الطريقة دى فى لعبة ع الموبيل بس للاسف الكود ضاع منى :(

أو ابحث عن LayerManager and Scrolling Background

ودة مثال بسيط من كتاب J2ME & Gaming

By Jason Lam

http://www.jasonlam604.com/

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*
public class ExampleGameCanvas extends GameCanvas implements Runnable {
private boolean isPlay; // Game Loop runs when isPlay is true
private long delay; // To give thread consistency
private int width; // To hold screen width
private int height; // To hold screen height
private int scnX, scnY; // To hold screen starting viewpoint
// Sprites to be used
Image backgroundImage;
private Sprite backgroundSprite;
// Layer Manager
private LayerManager layerManager;
// Constructor and initialization
public ExampleGameCanvas() throws Exception {
super(true);
width = getWidth();
height = getHeight();
scnX = 55;
scnY = 20;
delay = 20;
// Load Images to Sprites
backgroundImage = Image.createImage("/background.png");
backgroundSprite = new Sprite(backgroundImage);
layerManager = new LayerManager();
layerManager.append(backgroundSprite);
}
// Automatically start thread for game loop
public void start() {
isPlay = true;
Thread t = new Thread(this);
t.start();
}
public void stop() { isPlay = false; }
// Main Game Loop
public void run() {
Graphics g = getGraphics();
while (isPlay == true) {
input();
drawScreen(g);
try { Thread.sleep(delay); }
catch (InterruptedException ie) {}
}
}
// Method to Handle User Inputs
private void input() {
int keyStates = getKeyStates();
if ((keyStates & LEFT_PRESSED) != 0) {
if (scnX - 1 > 0)
scnX--;
}i
f ((keyStates & RIGHT_PRESSED) != 0) {
if (scnX + 1 + 140 < backgroundImage.getWidth())
scnX++;
}
}
// Method to Display Graphics
private void drawScreen(Graphics g) {
//g.setColor(0x00C000);
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x0000ff);
// display all layers
layerManager.setViewWindow(scnX,scnY,140,140);
layerManager.paint(g,20,20);
flushGraphics();
}
}
Main Midlet:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class SimpleScrollingLayerManger extends MIDlet {
private Display display;
public void startApp() {
try {
display = Display.getDisplay(this);
ExampleGameCanvas gameCanvas = new ExampleGameCanvas();
gameCanvas.start();
display.setCurrent(gameCanvas);
} catch (Exception ex) {
System.out.println(ex);
}
}
public Display getDisplay() {
return display;
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
exit();
}
public void exit() {
System.gc();
destroyApp(false);
notifyDestroyed();
}
}

ممكن تستخدم ال ME polish لانها كويسة ف ال GUI

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

SomeOne83

*جزاك الله خيرا ...ونعم بالله ...فهو الاول والآخر والظاهر والباطن سبحانه ماقدرناه حق قدره

*لا أدري تماما مالطريقة التي استخدمناها هل هي stack او غيرها لان المشروع مجهود ذاتي ولم يكن امامنا سوى شهرين فقط لنتعلم لغة J2ME فارجو المعذرة لأن معلوماتي بدائية جدا

*بصراحة شديدة لا أدري ماذا تعني بالـ Canvas...

#7

Eng-3llam

جزاك الله خير الجزاء

سأحاول ارفاق الكود هنا

يشرفني اطلاعك عليه...ومن ثم تعليقك بكل تأكيد

Project.txt

#8

السلام عليكم

بالنسبة للcanvas شبية ب ال panel ف ال SE

بالنسبة للكود الصراحة الكود غير منطم نهائيا ومتاكد انك لو بعدت عن الكود اسبوع وحبيت تفتحة مش هتفهم حاجة منة .حاول تنظم الكود

بالنسبة لعملية التكرار جرب ف بداية كل case تمسح اللى داخل ال list قبل ما تروح لها بdeleteAll

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#9

الـCanvas منطقة رسم مثل JPanel

أخي حاول أن ترتيب الكود أكثر ، لايجوز ان تكتب Public class Project ، بروجكت ماذا ، ماهي خصائصه ؟

اعمل Abstraction للمشكله حاول انشاء classes جديده ، اعمل methods ونادها من المكان اللي تحتاجه فيها ، هذا أطول Constructor شفته ،

قم بعمل Arrays للأسماء ،واستدعي أحد عناصرها في كل مره تحتاجه ، بدل الخمسين سطر تستطيع اختصاره بـ3 سطور :

تعريف مصفوفه واسناد القيم لهذه المصفوفه

لوب على عناصر الفورم

اضافة سترنق المصفوفه إلى هذا الفورم .

انت عملت ماهو أصعب من هذا ، لكنك ستتألم من عمل maintenance لو يحدث خطأ ماتدري ماسببه ، فقط بي ريلاكس وانشأ مثدز ومصفوفات .

#10

وعليكم السلام ورحمة الله

هههههههههه... والله يا اخوة اني لا ادري هل اعجب من كلامكم الذي لا ادري مامعناه.... ام اعجب من الكود الذي صنعناه.......!!!!

صدقوني انني اقل من مبتدئ في الـ J2ME ولكن ماللمضطر من حيلة... هكذا الزمتنا الجامعة بعمل مشروع كامل وجاهز للتنفيذ في اقل من شهرين... ووالله انه ليس لدي ادنى خليفة عن لغة الجافا ..فما بالكم بتفرعاتها..!!! لان تخصصي نظم معلومااااااات وليس برمجة !!

هذا مااستطعته واحمد الله على ماانجزناه وان كان سيئا للغاية ولا يصل الى ما كنا نصبو اليه...

لا تبخلوا علي بارشاداتكم (المفصصصصصلة)

طالب مسكين :(

#11

السلام عليكم

فعلا زى ما الزميل عيسى قال انت عملت ماهو أصعب من هذا ، لكنك ستتألم من عمل maintenance لو يحدث خطأ ماتدري ماسببه ، فقط بي ريلاكس وانشأ مثدز ومصفوفات

لو فى أى غموض فى الرد ممكن توضح ذلك واحنا تحت امرك:)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…