الاثنين، 26 أبريل 2010

انشاء النوافذ - النموذج

جميع النوافذ السابقه كانت عباره عن نافذة تغطي كامل الشاشه وتخدم هدف واحد فقط، ماذا لو أردت نافذه تحتوي على محموعه من الهناصر المختلفه. النموذج هو الحل لمثل هذه الحالات.

انشاء النموذج
public Form(String title)
public Form(String title, Item[] items)
المتغير الأول هو عنوان النموذج والثاني هو العناصر التي يحتويها النموذج.

عناصر النموذج
يمكن اضافه مجموعه من العناصر الى النموذج وهي:
  1. StringItem : وهو عباره عن نص غير قابل للتعديل يستخدم في الكتابه على النموذج.
  2. Spacer: عنصر يضاف للنموذج لحجز مساحه فارغه، يستخجم عاده لتحسين شكل النموذج.
  3. TextField: مربع نصي يشبه النافذه النصيه ولكنه لا يغطي كامل الشاشه.
  4. ImageItem: عنصر الصوره وهو عباره عن صوره يتم اضافتها للنموذج.
  5. DateField: حقل اختيار التاريخ.
  6. Gauge: وهو عباره عن مؤشر للعمليات يستخدم للدلاله على وجود عمليه طويله تتطلب الانتظار من المستخدم.
مثال
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.Spacer;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;

public class FormDemo extends MIDlet implements CommandListener {
private Form form;
private Command cmdExit = new Command( "Exit", Command.EXIT, 0 );

public FormDemo() {
form = new Form( "Form Demo" );
form.append( "StringItem" );

StringItem si = new StringItem( "Label", "Text" );
form.append( si );

Spacer spacer = new Spacer( 100, 40 );
form.append( spacer );

TextField txt= new TextField( "Phone No", "", 100, TextField.PHONENUMBER );
form.append( txt );

try {
Image img = Image.createImage( "/duke.png" );
ImageItem imgItem = new ImageItem( "Picture", img, Item.LAYOUT_CENTER, "Picture" );
form.append( imgItem );

} catch( Exception ex ) {
System.err.println("can't load the image");
}

DateField dateField = new DateField( "Date Of Birth" , DateField.DATE_TIME );
form.append( dateField );

form.setCommandListener(this);
form.addCommand(cmdExit);

}

public void startApp() {
Display.getDisplay(this).setCurrent(form);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if( c == cmdExit ) {
destroyApp(true);
notifyDestroyed();

}

}
}
في السطر 20 أنشأنا النموذج وفي السطر الذي يليه قمنا باضافه StringItem مباشره الى ال Form. في السطر 23 أنشأنا StringItem جديد ثم أضفناه للنموذج في السطر 24. في السطور 26-27 أنشأنا مساحه فارغه عرضها 100 نقطه وارتفاعها 40 نقطه ثم أضفناها للنموذج. في السطور 32-39 قمنا بانشاء صوره ثم وضعناها في ImageItem ثم أضفناه للنموذج.

ملاحظات مهمه:
  1. الصوره وضعناها في ملف ال src وهو المجلد الرئيسي في المشروع لذلك فان المسار يكون على الشكل التالي: duke.png/
  2. أي عمليه IO في جافا يجب وضعها في

try {

} catch(Exception ex) {

}
في السطور 41-42 أنشأنا حقل اختيار التاريخ وأضفناه للنموذج. وفي النهايه أضفنا المتنصت وأمر الخروج. في ال startApp عرضنا النموذج السابق على شاشه الهاتف.

ليست هناك تعليقات:

إرسال تعليق