আসসালামুআলাইকুম
আসা করি আপনারা সকলেই আল্লাহর রহমতে ভালো আছেন। আমিও ভালো আছি। আর ভালো না থাকলে তো ভালো লাগার ওয়েবসাইট TrickBD আছেই। যেখানে আমরা নিত্য নতুন টিপস এবং Trick পেয়ে থাকি।
J2me টিউটোরিয়াল এর আরো একটি পার্ট নিয়ে আপনাদের মাঝে হাজির হলাম। আজকে যে টপিক নিয়ে আলোচনা করতে যাচ্ছি তা নিম্নে দেওয়া হোলো
আজকের টপিক
Open Text in J2me
হ্যাঁ বন্ধুরা আজকের আর্টিকেল এ আমি আপনাদের সাথে শেয়ার করবো কিভাবে আপনারা Text কে jar বানাবেন। আমাদের নিত্য নতুন অনেক লেখা লেখি আমরা Text আকারে রাখি। কেমন হয় যদি সেই Text গুলো কে দিয়ে App তৈরী করলে? নিংসন্দেহে ভালো। তো শুরু করা যাক কিভাবে আপনারা Text File Java App এ পরবেন।
তো নিচের স্টেপ গুলো অনুসরন করুন।
প্রথমে আমরা Text File করব। যেটা আমরা অ্যাপ এ ওপেন করবো। Text File টি T.txt এই নামে আপনার Memory কার্ড এ সংরক্ষণ করুণ।
এখন আমরা J2me SDK ওপেন করি। পুর্বেন ন্যায় এখানেও MIDlet File তৈরী করি।
এখন আমরা প্রথমে গ্লোবাল ভেরিয়েবল গুলো ডিক্লেয়ার করে নেই।
Display disp; Form f; StringBuffer sb; StringItem si, si1, txt; Command ok, exit;
এখন আমরা আরো একটি ভেরিয়েবল তৈরী করবো। যেখানে আমাদের তৈরী করা Text ফাইল টির লিঙ্ক থাকবে। অর্থাৎ, আমরা যেই Folder এ Text File টি রেখেছি সেখানে যাই এবং path টি copy করি। এরপর নিচের মতো String তৈরী করি
String path = "file:///E:/System/T.txt";
আমি আমার path লিঙ্ক টি দিলাম। আপনারা আপনাদের টা দিবেন।
এখন আমরা উক্ত ভেরিয়েবল গুলো কনস্ট্রাক্টর এ ইনিটিয়ালাইজ করবো।
প্রথমে, Display এবং Form Object তৈরী করে নেই।
disp = Display.getDisplay(this); f = new Form("Open Text File");
এখন আমরা StringBuffer তৈরী করবো।
sb = new StringBuffer();
এরপর আমরা 3 টা StringItem তৈরী করবো। first দুটি item কমান্ড হিসেবে ব্যবহার হবে।
si = new StringItem(null,"Open"); si1 = new StringItem(null,"Exit"); txt = new StringItem("Nayeem24"," ");
এখন দুটো কমান্ড তৈরী করবো।
ok = new Command("OK", Command.OK,0); exit = new Command("Exit", Command.EXIT,1);
এখন এই কমান্ড দুটো StringItem এ ItemCommand হিসেবে যুক্ত করবো।
si.setDefaultCommand(ok); si1.setDefaultCommand(exit);
এখন এই StringItem দুটো তে ItemCommandListener যুক্ত করবো।
si.setItemCommandListener(this); si1.setItemCommandListener(this);
এখন আমরা StringItem গুলো Form এ যুক্ত করবো।
f.append(si); f.append(si1); f.append(txt);
এখন startApp() Form Display তে show করাবো।
disp.setCurrent(f);
এখন আমরা commandAction() এ চলে যাবো। সেখানে দুটো ItemCommand কে হ্যান্ডেল করবো।
প্রথমে, কোড ব্লক তৈরী করি।
public void commandAction(Command c, Item i) { }
এখন, আমরা exit কমান্ড নিয়ন্ত্রণ করবো।
if (c == exit) notifyDestroyed();
exit কমান্ড এ ক্লিক করলে অ্যাপ বের করে দিবে।
if (c == ok) openTxt(path);
এখন আমরা openTxt() function তৈরী করবো যেখানে Text File ওপেন করা হবে। তো প্রথমে কোড ব্লক তৈরী করে নেই।
public void openTxt(String str) { }
path parametar হিসেবে দেওয়া হয়েছিলো। এখন, আমরা দুটো ভেরিয়েবল তৈরী করবো।
StreamConnection sc = null; InputStream is = null;
এখন try catch লিখব error হ্যান্ডিলিং এর জন্যে।
try { } catch (IOException ioe) { f.append(ioe.toString()); } finally { if (sc != null) sc.close(); if (is != null) is.close(); }
এখন try catch কোড ব্লক এর ভিতরে StreamConnection তৈরী করবো Text File এর path লিঙ্ক দিয়ে।
sc = (StreamConnection) Connector.open(str);
এখান থেকে InputStream open করবো।
is = sc.openInputStream(); int ch;
এখন while কোড ব্লক তৈরী করবো এবং Data তথা Text কে char হিসেবে StringBuffer এ যুক্ত করবো এরপর StringBuffer কে String এ কনভার্ট করে StringItem txt এ যুক্ত করবো।
while ((ch = is.read()) != -1) { sb.append((char)ch); txt.setText(sb.toString()); }
এই পর্যন্তই ছিলো আজকের আলোচনা। নিচ থেকে পুরো Soure কোড টি ডাউনলোড করে প্রাক্টিজ করুন।
Download OpenText Example Source Code
View Full Source Code
/* * This is Open Text Example in J2me */ import java.io.*; import javax.microedition.io.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class OpenText extends MIDlet implements ItemCommandListener { Display disp; Form f; StringBuffer sb; StringItem si, si1, txt; Command ok, exit;String path = "file:///E:/System/T.txt"; public OpenText() { disp = Display.getDisplay(this); f = new Form("Open Text File"); sb = new StringBuffer(); si = new StringItem(null,"Open Text"); si1 = new StringItem(null,"Exit"); txt = new StringItem("Programme By Nayeem24"," "); ok = new Command("OK", Command.OK,0); exit = new Command("Exit", Command.EXIT,0); si.setDefaultCommand(ok); si1.setDefaultCommand(exit); si.setItemCommandListener(this); si1.setItemCommandListener(this); f.append(si); f.append(si1); f.append(txt); } public void startApp() { disp.setCurrent(f); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Item i) { if (c == exit) notifyDestroyed(); if (c == ok) openTxt(path); } public void openTxt(String str) { StreamConnection sc = null; InputStream is = null; try { sc = (StreamConnection) Connector.open(str); is = sc.openInputStream(); int ch; while ((ch = is.read()) != -1) { sb.append((char)ch); txt.setText(sb.toString()); } } catch (IOException ioe) { f.append(ioe.toString()); } finally { if (sc != null) sc.close(); if (is != null) is.close(); } } }
Thanks For Read