Friends আজকে আমি J2me এর Thread নিয়ে আলোচনা করবো। J2me programming এ Thread খুবি গুরুত্বপূর্ণ অংশ। শুধু J2me এই নয় সব Java প্রোগ্রামিং এই Thread একটি গুরুত্ব পূর্ণ উপাদান। এটি দারা অনেক কাজ করা হয়। বিশেষ করে game developement এ এটি ব্যাপক ব্যবহার হয়ে থাকে। এটি মুলত একটি live উপাদান। অর্থাৎ, এটা দিয়ে আমরা live কোড excute করতে পারি। যেমন আমরা চলমান Time and Date এটার ম্যাধ্যমে খুব সহজে excute করতে পারি। সুতরাং এই Thread আমাদের ভালো করে শিখা উচিৎ। এটা পরবর্তীতে Java প্রোগ্রামিং শিখার ক্ষেত্রে উপকারি হবে। তো, চলুন আমরা Thread শিখি একটি Source কোড উদাহারণ এর ম্যাধ্যমে।
J2ME Thread Sleep
নিচের step গুলো অনুসরন করুণ
প্রথমে global variable জুগুল initialize এর পূর্বেই declare করা হয় সেগুলো তৈরী করে নেই।
Display disp; Form bd, india, pak, usa, bye; Command exit;
এখন Constructor এ variable গুলো initialize করবো। Display Object তৈরি করেন আগে। কিভাবে করতে হয় তা আপনারা এতি মধ্যে শিখে গেছেন। তো এখন আমরা 5 টা Form তৈরি করবো। প্রথমে আমরা Form bd তৈরি করে নেই।
bd = new Form("Bangladesh"); String b = "This is Bangladesh"; bd.append(b);
bd Bangladesh Form তৈরি করলাম। String তৈরি করলাম সেটা bd তে যুক্ত করলাম। ঠিক একই নিয়মে এখন india এর Form তৈরি করবো।
india = new Form("India"); String i = "This is india"; india.append(i);
india form তৈরি করা হয়ে গেল এখন pak Form তৈরি করবো একই নিয়মে।
pak = new Form("Pakistan"); String p = "This is Pakistan"; pak.append(p);
এখন, usa Form তৈরি করবো।
usa = new Form("USA"); String u = "This is United State of America"; usa.append(u);
এখন bye Form তৈরি করবো।
bye = new Form("Good Bye"); String by = "Welcome for complete all task"; bye.append(by);
এখন, আমরা একটা exit command তৈরি করবো। এবং এই exit command টা bye Form এ যুক্ত করবো।
exit = new Command("Exit", Command.EXIT,0); bye.addCommand(exit); bye.setCommandListener(this);Constructor এর কাজ শেষ। এখন startApp() এ Thread.sleep() এর কাজ করবো। পরবর্তী পোস্ট এ Thread.start() সম্পর্কে আলোচনা করা হবে। প্রথমে আমরা প্রথম bd Form টা Display তে Show করাবো।
disp.setCurrent(bd);
এখন Thread.sleep() লিখবো।
try { Thread.sleep(3000);} catch () { }উপরিউক্ত bd Form টা 3 সেকেন্ড স্থায়ি হবে। এরপর নিম্ন উক্ত india Form টা Display তে show করবে।
disp.setCurrent(india);এটাও 3 সেকেন্ড স্থায়ি হবে
try { Thread.sleep(3000); } catch () { }3 সেকেন্ড পর নিম্ন উক্ত Form টা show করবে।
disp.setCurrent(pak);pak Form তাও ৩ সেকেন্ড স্থায়ি হবে
try { Thread.sleep(3000); } catch () { }৩ সেকেন্ড পর usa Form show করবে
disp.setCurrent(usa);এটাও ৩ সেকেন্ড স্থায়ি হবে
try { Thread.sleep(3000); } catch () { }এরপর ৩ সেকেন্ড পর last bye Form Display তে show করবে।
disp.setCurrent(bye);এটা সর্বশেষ স্থায়ি ভাবে show করবে।
এই পর্যন্ত ছিলো startApp() এর কাজ। একের পর এক অর্থাৎ প্রতি ৩ সেকেন্ড পর পর এক একটা Form excute হবে। এখন আমরা commandAction() এ exit command এর কাজ করবো। command handle করবো। i command টা শুধুমাত্র শেষের bye Form এ যুক্ত আছে। জা এপ তা বের করতে ব্যবহার করা হয়েছে। নিচে notifyDestroyed() এর মাধ্যম টা দেখানো হল।
if (c == exit) { notifyDestroyed(); }exit command এ click করার পর এপ exit হয়ে যাবে। এই পর্যন্তই ছিলো আজকের আলোচনা। নিচ থেকে পুরো Source কোড টি ডাউনলোড করে নেন।
Download ThreadExample Source Code View Full Source Code
/* * Thread Example */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ThreadExample extends MIDlet implements CommandListener { Display disp; Form bd, india, pak, usa, bye; Command exit; public ThreadExample() {disp = Display.getDisplay(this); bd = new Form("Bangladesh"); String b = "This is Bangladesh \n Bangladesh is a small country"; bd.append(b); india = new Form("India"); String i = "This is India \n India is larger than Bangladesh.It located besid Bangladesh"; india.append(i); pak = new Form("Pakistan"); String p = "This is Pakistan \n Pakistan is larger than Bangladesh"; pak.append(p); usa = new Form("USA"); String u = "This is USA \n United State of America.This world most powerful country"; usa.append(u); bye = new Form("Good Bye"); String by = "Welcome for complete all Tasks"; bye.append(by); exit = new Command("Exit", Command.EXIT,0); bye.addCommand(exit); bye.setCommandListener(this); } public void startApp() { disp.setCurrent(bd); try { Thread.sleep(3000); } catch (Exception exc) { } disp.setCurrent(india); try { Thread.sleep(3000); } catch (Exception exc) { } disp.setCurrent(pak); try { Thread.sleep(3000); } catch (Exception exc) { } disp.setCurrent(usa); try { Thread.sleep(3000); } catch (Exception exc) { } disp.setCurrent(bye); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == exit) { notifyDestroyed(); } } }Thanks For Read This Post