الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

5 - 2 - التعامل مع الفورم Form في J2ME

مغلق
بدأه مصعب غيلان في 7 يوليو 2004 · 11 رد · 4,139 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سنتعرف في هذا الجزء على كيفية التعامل مع الفورم Form

يرث هذا الصنف الكثير من الاعضاء Members من الصنف Screen ومن هذة الطرق

setTicker, setTitle

Form : عبارة عن شاشة شبيهة الى حد ما ب Label حيث لا يستطيع المستخدم تحريريها

ونستطيع اضافة الكثير من العناصر Items الى الفورم

سنتعرف على بعض هذة العناصر لاحقا

هذا الكائن يحتوي على مشيدين Constructor تستطيع اختيار احدهما

public Form(String title)
public Form(String title, Item[] items)

title : العنوان الذي سيظهر اعلى النافذة

ونستطيع تغييره باستخدام الطريقة الموجودة في نفس الصنف setTitle وهذة الطريقة ورثها الصنف Form من الصنف Screen

items : مصفوفة من العناصر التي نود اضافتها للفورم

ونستطيع التحكم باضافة او حذف هذة العناصر باستخدام عدد من الطرق التي سنشرح بعض منها لاحقا

Append , Insert , get , delete

وقبل ان نقوم بشرح بعض الطرق التابعة لهذا الكائن سنقدم شرحا مختصرا للعناصر Items وكذلك للكائن Ticker

العناصر Items : هي الاصناف المشتقة من الصنف Item وهذة الكائنات هي

ChoiceGroup, DateField, Gauge, ImageItem, StringItem, TextField

وسنتعرف على بعض منها لاحقا بإذن الله وفي هذا الدرس سنقوم بإضافة حقل النص TextField الى الفورم وهذا الصنف شبيه الى حد ما بالصنف TextBox

ايظا سنقوم باضافة Ticker وهو ليس Items ولكنا سنتعرف عليه وكيف يعمل

Ticker : عبارة عن نص يظهر في اعلى النافذة يتحرك بشكل تلقائي

ويتم اضافته الى النافذة باستخدام الطريقة setTicker التابعة للصنف Screen

*******************************************************************

وبعد ان تعرفنا على بنية المشيد وماهي Items سنذكر الان بعض الطرق التابعة للصنف Form

public int append(Image img)

تقوم هذة الطريقة بإضافة صورة الى الفورم بعد ان نقوم بانشاءها باستخدام الكائن ImageItems

وسنوضح التعامل مع هذة الطريقة عندما نقوم بشرح العناصر Items

public int append(Item item)

تقوم هذة الطريقة بإضافة عنصر ما الى النافذة وتعيد رقم العنصر في النافذة

public int append(String str)

إضافة اي عبارة نصية الى الفورم باستخدام هذة الطريقة

public void insert(int itemNum, Item item)

استبدال عنصر موجود من سابق بعنصر جديد نقوم بإضافته

itemNum : رقم العنصر الذي تريد استبداله

item : العنصر الجديد الذي سنضعه بدلا عن القديم

public void setTicker(Ticker ticker)

يقوم بإضافة Ticker الى اعلى الفورم

وسنقوم بإنشاء الكائن Ticker باستخدام المشيد Constructor

Ticker(String str)

حيث ان str هو النص الذي سيظهر في Ticker اعلى النافذة

والان بعد شرحنا كيفية التعامل مع الفورم بقي علينا ان نقوم بوضع مثال يوضح لنا كل هذا

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyForm extends MIDlet implements CommandListener
{
  private Display display;

 Command cmdExit = new Command("Exit", Command.EXIT, 0);
  Command cmdClear = new Command("Clear Text", Command.SCREEN, 0);

  TextField field;

   Form form;

   Ticker ticker;

  public MyForm  ()
   {
    display =Display.getDisplay(this);
    form = new Form("Form Title");
    field =new TextField("TextField Title","Arab Team",20,0);
    ticker = new Ticker (" this text in Ticker "); 
   }

  public void startApp()
   {
    form.append("This text in Fom\n");
    form.append("__________\n");
    form.append(field);
    form.addCommand(cmdExit);
    form.addCommand(cmdClear);
    form.setCommandListener(this);
    display.setCurrent(form);
  }

  public void pauseApp(){ }
  public void destroyApp(boolean unconditional){}

/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
 {
    if (  s == form )
      {
        if (c == cmdExit)
          {
            destroyApp(false);
            notifyDestroyed();
          }
        else if (c == cmdClear)
                field.setString("");
        }
  }  // end commandAction
} // end Class
#2

كان يفترض ان اقوم بوضع شرح للكود هذا اليوم

لكن لانطفاء الكهرباء في بلدنا تعطلت اوقاتي

لكن باذن الله سأقوم بوضع الكود في هذا المكان غدا

#3
اقتباس
لكن لانطفاء الكهرباء في بلدنا تعطلت اوقاتي

ان شاء الله اخي مصعب تبقى منور هذا المنتدى

لذلك ساقوم بالمساعدة واشرح البرنامج عنك اخي مصعب

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyForm extends MIDlet implements CommandListener
{
 private Display display;

Command cmdExit = new Command("Exit", Command.EXIT, 0);
 Command cmdClear = new Command("Clear Text", Command.SCREEN, 0);

ا لى هنا نعرف ماهو المقصود

TextField field;

field قمنا بتعريفها بانها من نوع TextField حيث يستطيع المستخدم تغيير محتو ى الحقل وكتابة ما يريد او وضع String من البرنامج

Form form;

form من نوع Form وهي عبارة عن شاشة لا يستطيع المستخدم بتحريرها مثل ما قال اخى مصعب

Ticker ticker;

ساشرحها

الدور على اخونا الل constructor

public MyForm  ()
  {
   display =Display.getDisplay(this);

اعتقد نعرف ما تعني

form = new Form("Form Title");

new Form انشاء الشكل

Form Title اي هو العنوان وستظهر اعلى الشاشة يسار للحقل الكلي يعني الشاشة

field =new TextField("TextField Title","Arab Team",20,0);

شرحت سابقا TextField

method startApp()

تعرفنا ماذا يعمل

ملاحظة

قمت بتعديل ال Ticker لان اخي مصعب نسي اضافتها في المثود startApp()

ولذلك لا تعمل في مثال اخى مصعب

form.append("This text in Fom\n");
   form.append("__________\n");
   form.append(field);

اضفنا ل Form عن طريق ال

method form.append(String)

This ist Text in Form
-------------------
field ="Arab Team"

   form.addCommand(cmdExit);
   form.addCommand(cmdClear);

اضفنا الازرار عن طريق ال

method form.addCommand(command);

 form.setCommandListener(this);

تاكيد اضافة الازرار للفورم

display.setCurrent(form);

اعتقد واضحة

form.setTicker( new Ticker("J2ME is cool") );

Ticker هي عبارة عن String متحرك يظهر على الشاشة من اليمين الى اليسار

/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
{
   if (  s == form )
     {
       if (c == cmdExit)
         {
           destroyApp(false);
           notifyDestroyed();
         }

شرحت سابقا

if (c == cmdClear)
               field.setString("");

هون فكر حلوة لعملية مسح الحقل Field

اذا كان الزر مساوي ل cmdClear سيقوم بوضعString فاضي يعني" " في الحقل مكان "Arab Team"

في Field

اتمنى اني شرحت بشكل واضح

لست متواجد بشكل يومي

#4

تعديل ال code الذي كتبه الاخ مصعب من اجل ان نرى عمل Ticker

هناك طريقتان الاولى

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyForm extends MIDlet implements CommandListener
{
 private Display display;

Command cmdExit = new Command("Exit", Command.EXIT, 0);
 Command cmdClear = new Command("Clear Text", Command.SCREEN, 0);

 TextField field;

  Form form;

  Ticker ticker;

 public MyForm  ()
  {
   display =Display.getDisplay(this);
   form = new Form("Form Title");
   field =new TextField("TextField Title","Arab Team",20,0);
   ticker =new Ticker("This a Ticker");
  }

 public void startApp()
  {
   form.append("This text in Fom\n");
   form.append("__________\n");
   form.append(field);
   form.addCommand(cmdExit);
   form.addCommand(cmdClear);
   form.setCommandListener(this);
   display.setCurrent(form);
   form.setTicker( ticker );
 }

 public void pauseApp(){ }
 public void destroyApp(boolean unconditional){}

/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
{
   if (  s == form )
     {
       if (c == cmdExit)
         {
           destroyApp(false);
           notifyDestroyed();
         }
       else if (c == cmdClear)
               field.setString("");
       }
 }  // end commandAction
} // end Class

لست متواجد بشكل يومي

#5

الطريقة الثانية

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyForm extends MIDlet implements CommandListener
{
 private Display display;

Command cmdExit = new Command("Exit", Command.EXIT, 0);
 Command cmdClear = new Command("Clear Text", Command.SCREEN, 0);

 TextField field;

  Form form;



 public MyForm  ()
  {
   display =Display.getDisplay(this);
   form = new Form("Form Title");
   field =new TextField("TextField Title","Arab Team",20,0);
  
  }

 public void startApp()
  {
   form.append("This text in Fom\n");
   form.append("__________\n");
   form.append(field);
   form.addCommand(cmdExit);
   form.addCommand(cmdClear);
   form.setCommandListener(this);
   display.setCurrent(form);
   form.setTicker(new Ticker("this is a Ticker") );
 }

 public void pauseApp(){ }
 public void destroyApp(boolean unconditional){}

/************* implements CommandListener ****************/
public void commandAction(Command c, Displayable s)
{
   if (  s == form )
     {
       if (c == cmdExit)
         {
           destroyApp(false);
           notifyDestroyed();
         }
       else if (c == cmdClear)
               field.setString("");
       }
 }  // end commandAction
} // end Class

اعذروني اخواني على عدم المشاركة بالدروس لاني احضر للامتحانات

لست متواجد بشكل يومي

#6

حاولت اضع صورة البرنامج بعد التنفيذ فلم استطع الرجاء ان يقول لي احد كيف اقوم بذلك

لست متواجد بشكل يومي

#7

شكرا اخي Student_1981

انت وضحت الكود بشكل كبير جدا وهذا جهد تشكر عليه

اما عن وضع الصور في المنتدى فخدمة رفع الصور على العنوان

http://wwww.arabteam2000.com/picload

#8
TheExample.jpg

لست متواجد بشكل يومي

#9
app.jpg

لست متواجد بشكل يومي

#10

شكراً لك أخي العزيز على كل هذا المجهود المبذول لتطوير العالم العربي

بورك فيك ...

تقبل أعز و أخلص تحياتي القلبية

#11

السلام عليكم,

مشكورين إخواني على هذا الشرح الرائع, و لكن لي طلب صغير ممكن شرح طريقة حذف محتويات ال Form إذا أردنا إدخال محتويات جديدة أو صفحة جديدة؟

رامي

#12

تمت الاجابة سؤالك مكرر في موضوع ملخص للأوامر والبارامترات المؤثرة في اللغةJ2ME

لست متواجد بشكل يومي

هذا الموضوع مغلق.

مواضيع مشابهة