سنتعرف في هذا الجزء على كيفية التعامل مع صندوق النص TextBox
وهو عبارة عن شاشة يستطيع المستخدم من خلالها الاضافة او التحرير
المشيد Constructor الخاص بهذا الكائن على الشكل
TextBox(String title, String text, int maxSize, int constraints)
title : عنوان النص وسيظهر في اعلى صندوق النص
ونستطيع تغييره باستخدام الطريقة الموجودة في نفس الصنف setTitle وهذة الطريقة ورثها هذا الصنف TextBox من الصنف Screen
text : وهو النص الذي سيكون موجودا في داخل صندوق النص
ونستطيع التعامل معه من خلال الامرين setString , getString
maxSize : عدد الاحرف التي سيتقبلها صندوق النص بحيث لا يمكن للمستخدم اضافة اكثر من العدد المطلوب
constraints : القيد او الهيئة للنص المدخل وهناك العديد من القيود
هذة القيود موجودة في الصنف TextField على هيئة حقول ساكنه static
ويتم استخدامها على الشكل TextField.Field حيث Field تعبر عن اسم القيد
من هذة القيود :
ANY : ويعبر عن جميع الاحرف او الارقام
NUMERIC : يسمح للمستخدم باستخدام الارقام فقط
PASSWORD : تظهر للمستخدم نجمة عن كل حرف يكتبه
وبعد ان تعرفنا على بنية المشيد سنذكر الان بعض الطرق التابعة للصنف TextBox
public void delete(int offset, int length)
تقوم هذة الدالة بحذف جزء من النص الموجود في صندوق النص
offset : بداية النص المراد حذفه
length : طول النص
public int getConstraints()
تعيد نوع القيد المستخدم على شكل رقم
public void setConstraints(int constraints)
تستطيع تغيير القيد المستخدم في الصندوق باستخدام هذا المنهج
public int getMaxSize()
تعيد الحد الاقصى لعدد الحروف الممكن كتابتها في صندوق النص
public int setMaxSize(int maxSize)
ايظا نستطيع تغيير الحد الاقصى لعدد الحروف باستخدام هذا المنهج
public String getString()
تعيد هذة الدالة النص المكتوب في الصندوق
public void setString(String text)
يقوم هذا المنهج بوضع النص التي تريده على الصندوق
public int size()
تعيد هذة الدالة عدد الاحرف المكتوبة حاليا في الصندوق
والان بعد شرحنا كيفية التعامل مع صندوق النص بقي علينا ان نقوم بوضع مثال يوضح لنا كل هذا
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet implements CommandListener
{
private Display display;
Command cmdExit = new Command("Exit", Command.EXIT, 0);
Command cmdClear = new Command("Clear", Command.SCREEN, 0);
Command cmdUndo = new Command("Undo", Command.SCREEN, 0);
Command cmdConstraint = new Command("Constraint", Command.SCREEN, 0);
TextBox box = null;
String undoString;
public void HelloMidlet(){}
public void startApp(){
display =Display.getDisplay(this);
undoString = "Hello";
box =new TextBox("ANY ",undoString,20,TextField.ANY);
box.addCommand(cmdExit);
box.addCommand(cmdClear);
box.addCommand(cmdUndo);
box.addCommand(cmdConstraint);
box.setCommandListener(this);
display.setCurrent(box);
}
public void pauseApp(){ }
public void destroyApp(boolean unconditional){}
/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
{
if (s == box)
{
if ( c == cmdExit )
{
destroyApp(false);
notifyDestroyed();
}
else if ( c == cmdClear )
{
undoString = box.getString();
box.setString("");
}
else if ( c == cmdConstraint )
if ( box.getConstraints() == TextField.ANY)
{
box.setConstraints(TextField.NUMERIC);
box.setTitle("NUMERIC");
}
else
{
box.setConstraints(TextField.ANY);
box.setTitle("ANY");
}
else if ( c == cmdUndo )
box.setString(undoString);
}
} // end commandAction
} // end Class