تبليغاتX
مجله آموزشی جاوا
Your Weblog Banner
بخش سوم: آنچه مورد نياز است

Requirements

You must have the NetBeans IDE 6.0 Mobility or Full edition (download) installed before you can start Java ME MIDP/CLDC development. The Client/Server sections require the Full Edition for Web Services support. If you installed only the Mobility Edition, you need to download the following plugins from the Update center (Tools > Plugins):

·                                 Web Applications

·                                 Web Services

·                                 Sun Java System Application Server

آنچه مورد نياز است

·                                 شما بايد NetBeans IDE 6.0 Mobility را داشته باشيد و يا نسخه كامل را از اين آدرس دريافت كنيد.

·                                 http://download.netbeans.org/netbeans/6.0/final/

·                                 بخش سرويس دهنده / سرويس گيرنده نياز به نسخه كامل اين نرم افزار دارد تا سرويسهاي وب را پشتيباني كند. اگر شما فقط بخش موبايل را دريافت كرده ايد، از منوي Tools و بخش Plugins پلاگين هاي زير را نصب كنيد:

  • Web Applications
  • Web Services
  • Sun Java System Application Server
|+| نوشته شده توسط هادی رفیعی در سه شنبه بیستم آذر 1386 و ساعت 10:57 |
بخش دوم: شروع سریع

NetBeans 6.0 CLDC/MIDP Development Quick Start Guide

شروع سريع با برنامه نويسي تحت CLDC/MIDP بوسيله نرم افزار NetBeans 6.0

This document takes you through the basics of using NetBeans IDE 6.0 to create a Java™ Platform, Micro Edition (Java™ ME platform), Mobile Information Device Profile (MIDP) application. This document is designed to get you going as quickly as possible.

The following tutorial takes you through some of the basic steps of working with the new project system. We show you two ways to create a Java ME MIDP project named "MyHello" that displays the text "Make my day" in a device emulator. We also take a quick look at other Mobility features for CLDC/MIDP development.

اين راهنما به شما مي آموزد كه چگونه توسط NetBeans IDE 6.0 با MIDPها و از طريق پلاتفرم Java™ ME platform نرم افزار نويسي كنيد. اين راهنما به گونه اي طراحي شده كه شما از سريعترين راه ممكن آموزش ببينيد.

اين خودآموز شما را با قدم هاي اول و از ايجاد پروژه هاي جديد آموزش مي دهد. ما دو مسير به شما مي آموزيم كه شما يك برنامه بنويسيد با نام MyHello كه متن Make My Day را در شبيه ساز نمايش دهد. ضمنا يك نگاه كوتايي به امكانات ديگر برنامه نويسي با CLDC/MIDP مي اندازيم.

Contents

·                                 Tutorial Requirements

·                                 Creating an Application in the Visual Mobile Designer

·                                 Creating Applications in the Source Editor

·                                 Changing Emulator Platforms

·                                 Using Configurations to Address Device Fragmentation

·                                 Connecting to Web Services

·                                 Designing MIDP Games

·                                 See Also

فهرست

·                                 آنچه مورد نياز است

·                                 ايجاد يك نرم افزار در محيط طراحي مجازي همراه (Visual Mobile Designer)

·                                 ايجاد يك نرم افزار در محيط كد نويسي

·                                 تغيير دادن پايه اي شبيه ساز

·                                 استفاده از پيكربندي براي آدرس دهي

·                                 اتصال به سرويسهاي وب

·                                 طراحي بازيهاي MIDP

·                                 اينجا را هم ببينيد

 

|+| نوشته شده توسط هادی رفیعی در سه شنبه بیستم آذر 1386 و ساعت 10:54 |
بخش اول: فراگيري نحوه عملكرد نرم افزار هاي همراه

Mobile Applications Learning Trail

فراگيري نحوه عملكرد نرم افزار هاي همراه

What is a Mobile Application?

يك نرم افزار همراه چيست؟

Mobile Applications use the Java Micro Edition (Java ME) platform, which was developed for small devices like pagers, mobile phones, and set-top boxes. Java ME uses smaller-footprint subsets of Java SE components, trimmed down virtual machines and APIs and also defines APIs that are specifically targeted at consumer mobile and embedded devices. NetBeans Mobility supports the two base configurations of the Java ME platform, CLDC and CDC.

اينگونه نرم افزارها توسط جاوا نسخه ميكرو (J2ME) برنامه نويسي مي شوند، جاوا نسخه ميكرو (J2ME) براي برنامه نويسي بر روي دستگاه هاي كوچك نظير پيجرها ، تلفن های همراه و ست-تاپ باكسها (Set-top boxes) طراحي شده. جاوا نسخه ميكرو (J2ME) قسمت كوچك شده اي از جاواي استاندارد (J2SE) مي باشد، كه براي برنامه نويسي با APIs و طراحي APIs جديد براي استفاده همراه ها و دستگاههاي كوچك بطور اختصاصي طراحي شده است. آن قسمت از نرم افزار NetBeans كه براي موبايل طراحي شده (NetBeans Mobility) دو بخش اصلي پيكربندي جاوا نسخه ميكرو (J2ME) را كاملا پشتيباني مي كند. يعني CLDC و CDC.

CLDC: Connected Limited Device Configuration (CLDC) is for devices with less memory and processing power than CDC-based devices. The Mobile Information Device Profile (MIDP) is based on CLDC and more than a billion MIDP devices are available worldwide.

CLDC: پيكربندي دستگاه هاي متصل با محدوديت (Connected Limited Device Configuration) اين پيكربندي براي دستگاههايي ايجاد شده است كه حافظه و پردازنده كمتري نسبت به پيكربندي دستگاه هاي متصل (CDC) دارند. پروفايل اطلاعات دستگاه همراه (Mobile Information Device Profile (MIDP)) بر روي CLDC پايه گذاري شده و در سرتاسر جهان بيش از يك بيليون از دستگاههاي MIDP دار وجود دارند.

CDC: Connected Device Configuration (CDC) is for devices with much greater memory, processing power and network connectivity such as smart phones, set-top boxes, internet appliances, and embedded servers.

CDC: پيكربندي دستگاه هاي متصل (Connected Device Configuration (CDC)) طراحي شده است براي دستگاههايي با حافظه بيشتر و قدرت پردازش بيشتر و قابليت اتصال به شبكه همانند تلفن هاي هوشمند (Smart Phones) ، ست-تاپ باكسها (Set-top boxes) ، نرم افزارهاي تحت وب و سرورهاي جاسازي شده (embedded servers)

Getting Started

·                                 NetBeans 6.0 CLDC/MIDP Development Quick Start Guide

·                                 NetBeans 6.0 CDC Development Quick Start Guide

شروع كنيد

·          شروع سريع با برنامه نويسي تحت CLDC/MIDP بوسيله نرم افزار NetBeans 6.0

·          شروع سريع با برنامه نويسي تحت CDC بوسيله نرم افزار NetBeans 6.0

|+| نوشته شده توسط هادی رفیعی در سه شنبه بیستم آذر 1386 و ساعت 10:49 |
ترجمه خودآموز نت بين NetBeans IDE

سلام به همه دوستان برنامه نويس. علاقه مندان به پلاتفرم J2ME و NetBeans IDE و برنامه نويسي جاوا و موبايل با جاوا نسخه ميكرو

من بعد از اينكه كلي رو اينترنت دنبال يك آموزش جامع در مورد نرم افزار NetBeans گشتم، خودآموز خود شركت NetBeans جامعترين چيزي بود كه نظرمو جلب كرد. ولي اون به زبان انگليسي بود و مجبور شدم شروع به ترجمه كنم از اين به بعد هر چي ترجمه كردم رو وبلاگم مي ذارم تا همه استفاده كنن. در ضمن اگه نظر بديد حال دادين.

اولين قسمت اونو مي ذارم اگه توجه شما رو جلب كرد ادامه مي دم.

 


در ضمن آدرس سورس انگليسي اين نوشته www.netbeans.org

فعلا با اجازه

|+| نوشته شده توسط هادی رفیعی در سه شنبه بیستم آذر 1386 و ساعت 10:45 |
درس بيستم: معرفي يك متد

درس بيستم: معرفي يك متد

-----------------------------------------------

 

معرفی یک متد

جمله ای که متدها توسط آن ایجاد می شوند، شبیه جمله ای است که یک کلاس را آغاز می کند. هر دو بین پرانتزهایی که پس از نامشان قرار می گیرد، قادر به دریافت آرگومان بوده ، هر دو از علائم { و } برای مشخص کردن شروع و پایان خود استفاده می کنند .

تفاوت اصلی آن است که متدها قادر به بازگرداندن یک مقدار می باشند . این مقدار می تواند یکی از انواع ساده، مانند اعداد صحیح یا مقادیر Boolean  و یا یک کلاس می باشد. برای تعریف متدی که مقداری را برنمی گرداند، از جمله void استفاده می کنیم .

نمونه زیر ، مثالی است از متدی که کلاس Virus می تواند برای آلوده کردن فایلها از آن استفاده کند:

Public Boolean intectFile(string filename) {

   Boolean success = false;

   // file-infecting statements would be here

 return success;

}

 

متد infectFile( )  برای افزودن ویروس به یک فایل به کار می رود . این متد فقط یک آرگومان می گیرد که متغیری است از نوع رشته به نام filename و مشخص کننده فایلی است که باید مورد حمله قرار گیرد .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:41 |
درس نوزدهم: استفاده از متدها

درس نوزدهم: استفاده از متدها

-----------------------------------------------

 

ایجاد رفتار با استفاده از متدها

 خصوصیات هر کلاس، نگاهدارنده اطلاعات مربوط به آن کلاس می باشند، لیکن درعمل ، قادر به انجام هیچ کاری نیستند . برای اینکه یک کلاس بتواند کارهایی را که برای انجام آنها به وجود آمده ، انجام دهد ،باید رفتار لازم را برایش ایجاد کنید .

رفتار عبارت است از کلیه بخشهایی از یک کلاس که وظیفه معینی را انجام می دهند. هر یک از این بخشها را یک متد(method) می نامیم.

متدها نیز مانند متغییرها، در ارتباط با یک شیء یا یک کلاس به کار می روند. به نام متد، همراه با یک نقطه به دنبال نام شیء یا کلاس قرار می گیرد.   مانند screen.drowString()  یا Integer.parselnt() .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:41 |
درس هجدهم: ايجاد متغييرهاي كلاس

درس هجدهم: ايجاد متغييرهاي كلاس

-----------------------------------------------

 

ایجاد متغیرهای کلاس

هر شیء به محض ایجاد ، شامل یک کپی مخصوص به خود ، از کلیه متغییرهایی است که بخشی از کلاس مربوط به آن شیء می باشند. به عنوان مثال ، هر شیء ایجاد شده از کلاس Virus شامل نسخهای مربوط به خود ، از متغییرهای newSeconds,maxFileSize,author می باشد . اگر یکی از این متغییرها را در یک شی ء تغییر دهید، تاثیری روی همان متغییر از شیء Virus دیگر نخواهد داشت .

گاهی یک خصوصیت بیش از آنکه مربوط به یک شیء خاص باشد، مربوط به خود کلاس است.

متغییرهایی که تاکنون برای اشیاء ایجاد می کردیم متغییرهای شیء (object variables) نامیده می شوند، چرا که وابسته به یک شیء خاص می باشند . متغییرهای کلاس(class variables) ، متغییرهایی هستند که وابسته اند به یک کلاس از اشیا و نه به یک شیء خاص .

هر دو نوع این متغیرها به یک شکل ایجاد می شوند و مورد استفاده قرار می گیرند ، با این تفاوت که متغییرهای کلاس با استفاده از جمله static ایجاد می شوند. مثال زیر ، یک متغیر کلاس را برای کلاس Virus ایجاد می کند :

 

Static int virusCount=0;

 

نحوه تغییر مقدار یک متغییر کلاس ، تفاوتی با چگونگی تغییر یک متغیر شیء ندارد. اگر یک شیء Virus به نام tuberculosis داشته باشید ، می توانید کلاس virusCount را با استفاده از جمله زیر تغییر دهید:

 

Tuberculosis.virusCount++;

 

ولی از آنجایی که متغیرهای کلاس با کل کلاس ارتباط دارند و نه به یک شیء خاص، می توانید به جای نام شیء ، از نام کلاس استفاده کنید :

 

Virus.virusCount++;

 

هر دو جمله فوق عمل یکسانی انجام می دهند، لیکن استفاده از نام کلاس ، هنگام کار با متغیرهای کلاس بهتر است ، چرا که بلافاصله مشخص می کند که متغیر مورد نظر ، یک شیء نیست ، بلکه یک متغیر کلاس است . اگر هنگام کار با متغیرهای کلاس ، همواره از اسامی اشیا استفاده کنید، فهمیدن اینکه آیا یک متغیر کلاس است یا نه ، بدون بررسی دقیق کد مربوط به کلاس ، امکان پذیر نخواهد بود .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:40 |
درس هفدهم: ايجاد متغييرها

درس هفدهم: ايجاد متغييرها

-----------------------------------------------

 

ایجاد متغییرها

خصوصیات یک شیء مشخص کننده کایه متغییرهایی هستند که این شیء برای عملکرد خود بدانها نیازمند است . این متغییرها می توانند انواع داده ای ساده ای از قبیل String  یا Graphics باشند.متغییرهای یک شیء را در تمامی برنامه مربوط به آن ، یعنی در تمامی متدهای آن شیء، می توان مورد استفاده قرار داد. این متغییرها بلافاصله پس از جمله class مربوط به شیء و قبل از کلیه متدهای آن تعریف می شوند.

یکی از چیزهای مورد نیاز برای یک شیءVirus  ، روشی است برای دانستن اینکه آیا یک فایل قبلاً آلوده شده است یا نه . برخی از ویروسهای کامپیوتری برای این منظور، محتویات فیلدی از فایل را که زمان آخرین تغییر آن فایل را نگهداری می کند، تغییر می دهند.

برای مثال یک ویروس ممکن است زمان فوق را از 13:41:20 به 13:41:61 تغییر می دهد . از آنجایی که هیچ فایلی در شرایط عادی در ثانیه 61 تغییر نمی یابد ، این زمان می تواند تعیین کننده آلودگی فایل باشد .

شیء Virus فیلد ثانیه از زمان تغییر فایل را به عدد 86 تغییر می دهد(علت انتخاب این عدد ، اصطلاح عامیانه ای است در زبان انگلیسی که در آن ، این عدد به معنای دور انداختن و طرد کردن به کار می رود). این مقدار در یک متغییر صحیح به نام newSeconds  ذخیره خواهد شد.

جملات زیر ، تعریف کلاس به نام Virus را با یک خصوصیت به نام newSeconds و دو خصوصیت دیگر آغاز می کنند :

 

Public class Virus {

          Public int newSeconds = 86;

          Public String author = “Sam Snett”;

          Int maxFileSize = 30000;

هر سه متغییر   newSeconds و maxFileSize و author جزو خصوصیات این کلاس می باشند . قرار دادن جملاتی مانند public  را در معرفی یک متغییر ، کنترل دسترسی (access control) می نامیم . چرا که این جملات چگونگی دسترسی سایر کلاسها به این متغییر را مشخص می سازند .

متغییر newSeconds دارای مقدار اولیه 86 است و جمله ای که آن را ایجاد می کند ، با public شروع می شود . public   کردن به این معنا است که هر برنامه ای که از اشیای Virus  استفاده می کند، می تواند این متغییر را تغییر دهد . مثلاً اگر عدد 92 برای این برنامه حائز اهمیت باشد ، می تواند مقدار newSeconds را به این عدد تغییر دهد. فرض کنید که برنامه ای یک شی Virus به نام influenza ایجاد کند. این برنامه می تواند مقدار متغییر newSeconds این شیء را توسط جمله زیر تنظیم کند :

 

influenza.newSeconds=92;

در کلاس Virus، متغییر author نیز public است و لذا برنامه های دیگر می توانند آزادانه مقدار آن را تغییر دهند. لیکن متغییر maxFileSize   تنها در درون خود این کلاس قابل استفاده است .

با public  کردن یک متغییر از یک کلاس ، این کلاس کنترل خود را روی چگونگی استفاده از آن متغییر، توسط برنامه های دیگر از دست می دهد. در بسیاری از موارد ، این امر مساله خاصی ایجاد نخواهد کرد. برای مثال ، متغییر author می تواند مساوی هر نام یا لقبی که مو لف ویروس را مشخص کند ، قرار گیرد.

محدود کردن دسترسی به یک متغییر باعث جلوگیری از خطاهایی می شود که ممکن است در اثر تخصیص مقادیر نادرست به آن متغییر رخ دهد. در مورد کلاس Virus، اگر متغییر newSeconds برابر عدد 60 یا عددی کوچکتر از آن قرار داده شود ، دیگر این کلاس به طور صحیح قادر به تعیین آلودگی فایلها نخواهد بود ، چرا که برخی از فایلها که بدون دخالت ویروس ، در همان ثانیه تغییر یافته اند ، از نظر این کلاس به عنوان  فایلهای آلوده شناسایی خواهند شد . اگر کلاس Virus بخواهد از این مساله اجتناب کند، باید دو عمل زیر انجام پذیرد :

·         متغییر newSeconds را از حالت public به حالت protected یا private تبدیل کنید. این جملات دسترسی به متغییر را محدودتر می سازند.

·         رفتارهای لازم را برای تغییر مقدار این متغییر و گزارش کردن مقدار آن به دیگر برنامه ها به ابن کلاس بیفزایید.

یک متغییر protected   فقط توسط خود کلاس ، کلیه زیر کلاسهای آن و کلیه کلاسهای موجود در همان بسته (package) قابل استفاده می باشد، بسته گروهی از کلاسهای مرتبط است که هدف مشترک را تعقیب می کنند.

یک متغییر private از نظر دسترسی، حتی از متغییر protected نیز محدودتر است و فقط توسط خود کلاس قابل استفاده می باشد . بهتر است که متغییر ها را عموماً به صورت protected  یا private تعریف کنید . مگر در مواردی که بدانید تغییر یک متغییر توسط برنامه های دیگر، خللی به عملکرد کلاس مربوطه وارد نخواهد کرد .

جمله زیر newSecond را به یک متغییر private تبدیل می کند:

private int newSeconds=86;

نوع دیگری از کنترل دسترسی نیز وجود دارد که عبارت است از عدم استفاده از هیچ یک از جملات public,private,protected  هنگام ایجاد متغییر .

وقتی یک متغییر بدون استفاده از جملات کنترل دسترسی را اغلب دسترسی پیش فرض(default access)  یا دسترسی بسته (package access)  می نامند ، هر چند جمله خاصی برای آن در نظر گرفته نشده است .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:40 |
درس شانزدهم: متغيير-اشيا

درس شانزدهم: متغيير-اشيا

-----------------------------------------------

 

تبدیل متغیرهای ساده به اشیا و بالعکس

تبدیل یک شی به یک متغیر ساده و یا عکس آن ، از طریق قالب ریزی امکان پذیر نمی باشد ، چرا که انواع اطلاعاتی در جاوا بسیار متفاوت می باشند .

در عوض ، بسته java.long به ازای هر نوع متغیر ساده ، دارای یک کلاس متناظر می باشد.

این کلاسها عبارتند از : Short , Long ,Integer , Float , Double , Character , Byte , Boolean

همانطور که می بینید نام کلیه این کلاسها با حروف بزدگ شروع می شود و این امر یادآور این نکته است که اینها همگی شیء می باشند ، نه متغییر ساده .

با استفاده از متدهای تعریف شده در هر یک از کلاسها و ارسال مقدار یک متغییر به عنوان آرگومان ، می توانید شییء متناظر با آن متغییر ایجاد کنید .

 

مثال :

Integer suffix = new Integer (907);

مثال بالا ، برای مقدار 907 یک شیء Integer ایجاد می کند .

پس از ایجاد این شیء می توانید از آن مانند اشیای دیگر استفاده کنید.

به عنوان مثال ، برای به دست آوردن یک مقدار int از شیء suffix می توانید از جملات زیر استفاده کرد :

 

Int newSuff=suffix.netValue();

 

یکی از قالب ریزیهای معمول از بک شیء به یک متغییر ، مربوط به هنگامی است که شیی از نوع رشته باید به صورت یک عدد مورد استفاده قرار گیرد . این امر ا استفاده از متدparselnt( ) از کلاس Integer انجام می شود.

 

مثال :

String count=”46”;

Int myCunt=Integer.parselnt(count);

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:39 |
درس پانزدهم: قالب ريزي اشياء

درس پانزدهم: قالب ريزي اشياء

-----------------------------------------------

 

قالب ریزی اشیا

اشیا را می توان به اشیای دیگر قالب ریزی کرد ، به شرطی که شی مبدا و مقصد از طریق ارث بری با هم مرتبط باشند . به عبارت دیگر ، یکی از کلاسها باید زیر کلاس دیگری باشد.

برخی اشیا هیچ نیازی به قالب ریزی ندارند و می توان از آنها به جای هر یک از کلاسهای ارشدشان استفاده کرد .

برای مثال ، از آنجایی که کلیه اشیا در جاوا زیر کلاسهای کلاس Object هستند ، هر جا که آرگومانی از نوع Object مورد نیاز باشد ، می توان از هر شیی استفاده کرد .

در ضمن ، هر جا یکی از کلاسها یک شی مورد احتیاج باشد، می توان از خود آن شی استفاده کرد.

جهت استفاده از یک شی به جای یکی از زیرکلاسهای آن ، باید از طریق جملاتی مانند زیر ، آن را صریحاً قالب ریزی کنید:

Window  win = new Window();

Frame top = new (Frame)win;

این جملات ، سبب قالب ریزی یک شی Window به نام win ، درون یک شی Frame می شوند.

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:38 |