بعد ان تعرفنا على
كيفية بناء التطبيق الاول
وكيفية تحويل هذا الكودالى تطبيق يعمل على الجوال
سنقوم الان بشرح لكيفية اضافة الازار والتعامل معها
بعد هذا الشرح يفترض بك ان تكون قادر على بناء تطبيق صغير من تلقاء نفسك
يجب عليك اولا انشاء زر جديد
ثم إضافة هذا الزر الى الواجهة التي تريد عرضها
بعد ذلك ستضع الكود الذي تود تنفيذة عند الضغط على هذا الزر
1 - تعريف الازرار في البرنامج
اولا سنقوم بتعريف كائن جديد من نوع Command
Command command;
2 - ثم نقوم بانشاء هذا الكائن باستخدام الامر new ونقوم باعطاء الزر بعض الخصائص مثل الاسم الذي سيظهر للمستخدم وكذلك نوع هذا الزر واولوية الظهور
command = new Command(String label, int commandType, int priority)
ويمكن اختصار الطريقتين السابقتين على الشكل
Command command = new Command(String label, int commandType, int priority)
انشأنا كائن من نوع زر ثم اعطيناه بعض الخصائص
3 - ربط هذا الزر مع واجهة محددة
بعد ذلك نقوم بإضافة هذا الزر الى الواجهة UI الذي نريد عرض الزر معها باستخدام الطريقة
UI.addCommand(command);
مثلا لو كانت الواجهة TextBox box سنكتب الامر على الشكل
box.addCommand(command);
4 - اضافة الكود الذي سينفذ عند الضغط على الزر
من اجل اضافة كود لزر امر معين يجب علينا استخدام implements Interface
اي اننا سنضمن الواجهة CommandListener في الكلاس الذي سنستخدم فيه الازرار بهذا الشكل
public class HelloMidlet extends MIDlet implements CommandListener {يوجد في الواجهة CommandListener الطريقة المجردة
(commandAction(Command c, Displayable s
لهذا يجب تضمين هذة الطريقة في تطبيقنا لاننا استخدمنا implements CommandListener
تعيد لنا هذة الواجهة كائنان
الاول Command c وهو الزر الذي قمنا بضغطه
الثاني Displayable s وهي الواجهة UI الذي تحوي هذا الزر
تعمل هذة الواجهة على تشغيل المتنصت Listener لكي يتصنت على كبسة الزر
يجب اولا توجيه هذا المتنصت الى UI محددة من خلال الامر setCommandListener
اي اننا سنخبر المتنصت ان ينفذ الكود عند حدوث كبسة زر ما من تلك الواجهة UI
والان سنضع هذا المثال المطور عن مثالنا السابق ونعود بعد ذلك لمناقشة الاشياء الجديدة فيه
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet implements CommandListener
{
private Display display;
Command command = new Command("Exit", Command.EXIT, 0);
TextBox box;
public void HelloMidlet(){}
public void startApp(){
display =Display.getDisplay(this);
box =new TextBox("Simple Example ","Hello ",20,0);
box.addCommand(command);
box.setCommandListener(this);
display.setCurrent(box);
}
public void pauseApp(){ }
public void destroyApp(boolean unconditional){}
/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
{
if ( c == command && s == box )
{
destroyApp(false);
notifyDestroyed();
}
}
}
