بخش ششم : برنامه های مبتنی بر MIDP/CLDC {ساخت برنامه ای شبیه برنامه Hello,World! } - قسمت چهارم
اکنون می خواهیم پروژه مورد نظر خود رااز طریق کدنویسی ایجاد کنیم. به جای خط تعریف (که در تصویر 70 مشخص شده) و اعلانکلاس HelloMIDlet اعلان مورد نظر خود را به این صورت وارد میکنیم. (پیشنهاد می کنم که خودتان کلمه به کلمه کدها را وارد کنید)
publicclass HelloMIDlet extends MIDlet implements javax.microedition.lcdui.CommandListener{
اولین بخش کد سازنده کلاس می باشد. دربرنامه نویسی شئ گرا وجود این سازنده برای هر کلاس اجباری است. پس ابتدا سازندهکلاس را ایجاد می کنیم.
public HelloMIDlet() {
}
در این پروژه برای نمایش پیام به یککامپوننت TextBox و برای صدور فرمان توسط کاربر به یک کامپوننت Command نیاز داریم. لازم است بدانید که تمامیکامپوننت ها و ابزارهای ارتباطی کاربر در مسیر lcdui قرار دارند. با این پیش زمینه دو کامپوننت مزبور راپس از تابع بالا به این روش به کلاس جاوا اضافه می کنیم.
javax.microedition.lcdui.TextBox helloTextBox;
javax.microedition.lcdui.Command exitCommand;
یک Textbox با نام HelloTextBox و یک Command با نام exitCommand .
اولین مرحله در اجرای یک برنامه موبایلنمایش آن می باشد. از آنجایی که متد پیش فرض Startup اولین متدی است که اجرا می شود، پس کدهایمربوط به نمایش برنامه و اجرای آن را در این متد می نویسیم.
برای این کار تابعی تحت عنوان initialize را قبل از این متد تعریف نموده و سپس آن رادر داخل همین متد فراخوانی می کنیم.
اکنون باید کد مورد نیاز برای نمایشکامپوننت TextBox را در این تابع بنویسیم. در شاخه lcdui کلاسی به نام Display وجود دارد که با استفاده از آن می توان یکرابط کاربری ساخت. برای دسترسی به صفحه نمایش هم باید از متد getDisplay همین کلاس استفاده کنید.
private void initialize() {
javax.microedition.lcdui.Display.getDisplay(this).setCurrent(get_helloTextBox());
}
public void startApp() {
initialize();
}
در خط جدیدی که به این تابع اضافهکردیم، ابتدا با استفاده از متد کلاس Display به صفحه نمایش دسترسی پیدا کردیم و سپس با استفاده از متد setCurrent آن را به عنوان نمایش فعلی تعیین کردیم.آرگومان این متد می تواند یک کامپوننت و یا یک فرم جدید باشد؛ در اینجا ما تابعیبه نام get_helloTextBox() که مقدار بازگشتی آن یک کامپوننت می باشد رابه عنوان آرگومان متد setCurrent تعیین کردیم. با این حساب اکنون باید ساختارتابع get_helloTextBox را بنویسیم. تابع مورد نظر را به صورت زیرتعریف نموده و کدهای مورد نیازمان را درون آن می نویسیم.
private javax.microedition.lcdui.TextBoxget_helloTextBox() {
if(helloTextBox == null) {
helloTextBox = new javax.microedition.lcdui.TextBox(null, "MobileProgramming", 25, 1);
helloTextBox.addCommand(get_exitCommand());
helloTextBox.setCommandListener(this);
} return helloTextBox;
}
در این کدها با استفاده از دستور new ابتدا یک کامپوننت از نوع TextBox ایجاد کرده و خصوصیات آن از جمله متن درونآن را تعیین می کنیم. در این مثال متن Mobile Programming را برای نمایش در این کامپوننت انتخاب کردیم.
در مرحله بعد یک کامپوننت Command برای خروج از برنامه به این کامپوننت اضافهکرده ایم و برای اجرای فرمان خروج ، کامپوننت TextBox را توسط متد setCommandListener گوش به فرمان کاربر قرار داده ایم. برایاضافه کردن کامپوننت Command از متد addCommand استفاده کرده ایم. آرگومان ورودی این متد،کامپوننت دیگری از نوع Command باید باشد که در اینجا برای راحتی کار ازتابعی استفاده کرده ایم که مقدار بازگشتی آن یک کامپوننت Command می باشد. پس باید این تابع را نیز تعریفکنیم.
private javax.microedition.lcdui.Command get_exitCommand(){
if(exitCommand == null) {
exitCommand = new javax.microedition.lcdui.Command("Exit",javax.microedition.lcdui.Command.EXIT, 2);
}
return exitCommand;
}
درون این تابع با استفاده از دستور new کامپوننت مورد نیاز را ایجاد نموده وخصوصیات آن را تعیین کرده ایم. به مقدار بازگشتی (return) دو تابع فوق توجه کنید. این دو تابعکامپوننتی از نوع TextBox و Command را به محل فراخوانی باز می گردانند.
برای کنترل عملکرد فرمان Exit نیز تابعی دیگر به نام commandAction نوشته ایم. وجود این تابع برای یک برنامه MIDP ضروری است.
public voidcommandAction(javax.microedition.lcdui.Command command ,javax.microedition.lcdui.Displayable displayable) {
if(displayable == helloTextBox) {
if(command == exitCommand) {
javax.microedition.lcdui.Display.getDisplay(this).setCurrent(null);
destroyApp(true);
notifyDestroyed();
}
}
}
اکنون پروژه خود را ذخیره نموده و آنرا اجرا می کنیم.
همانطور که مشاهده می کنید همانندپروژه قبلی عنوان برنامه در محیط شبیه ساز موبایل نمایش داده می شود.
تصویر 71
با فشردن کلید Launch برنامه را اجرا می کنیم. پیغام Mobile Programming در صفحه نمایش ظاهر می شود.
تصویر 72
برای خروج از برنامه کلید exit را فشار می دهیم.
برای راهنمایی بیشتر تصویری از صفحهسورس یا همون کد منبع (اون چیزی که در این بخش نوشتیم) رو هم قرار می دهم:
تصویر73
تصویر 74
پایان بخش ششم