الجمعة، 16 أبريل 2010

انشاء النوافذ - نافذة التنبيه

نافذة التنبيه
هي نافذة تقوم بعرض بيانات للمستخدم لمدة معينة من الوقت ثم تختفي. تستخدم هذه النافذة عادة لعرض رسائل الاخطاء والتحذيرات وغيرها من المعلومات للمستخدم.

انشاء نافذة التنبيه
public Alert(String title)
public Alert(String title, String alertText, Image alertImage, AlertType alertType)
أنواع التنبيهات
Info: تستخدم لعرض معلومات عامة للمستخدم.
Alarm: يستخدم لعرض رسالة تنبية عند حدوث حدث معين يكون المستخدم قد طلب تنبيهة علية مثل منبة الساعة او منبة حدوث اجتماع.
Confirmation: يستخدم لتأكيد حدوث شئ ما للمستخدم.
Error: يستخدم لتنبية المستخدم على حدوث خطأ ما في البرنامج.
Warning: ويستخدم لتحذير المستخدم من عملية خطيرة مثل مسح بعض البيانات وغيرها من العمليات.

التحكم في مدة ظهور النافذة
تظهر نافذة التنبية لمدة معينة ثم تختفي ويمكن تغيير هذه المده عن طريق الامر التالي:
setTimeout(int time)
ويكون الوقت المرسل بال milliseconds ويمكنك أن ترسل الية القيمه Alert.FOREVER وبذلك لن تختفي شاشة التنبية حتى يأمرها المستخدم بذلك.

مثال
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;

public class Alerts extends MIDlet implements CommandListener {
private Form mainForm;
private Command cmdExit;
private Command cmdInfo;
private Command cmdAlarm;
private Command cmdConfirm;
private Command cmdError;
private Command cmdWarning;

public void startApp() {
mainForm = new Form( "Alerts" );
cmdExit = new Command( "Exit", Command.EXIT, 0 );
cmdInfo = new Command( "Info", Command.SCREEN, 0 );
cmdAlarm = new Command( "Alarm", Command.SCREEN, 0 );
cmdConfirm = new Command( "Confirm", Command.SCREEN, 0 );
cmdError = new Command( "Error", Command.SCREEN, 0 );
cmdWarning = new Command( "Warning", Command.SCREEN, 0 );

mainForm.addCommand( cmdExit );
mainForm.addCommand( cmdInfo );
mainForm.addCommand( cmdAlarm );
mainForm.addCommand( cmdConfirm );
mainForm.addCommand( cmdError );
mainForm.addCommand( cmdWarning );
mainForm.setCommandListener( this );

Display.getDisplay(this).setCurrent(mainForm);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

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

} else if( c == cmdInfo ) {
Alert alert = new Alert( "Alert", "Info", null, AlertType.INFO );
Display.getDisplay(this).setCurrent( alert );

} else if( c == cmdAlarm ) {
Alert alert = new Alert( "Alert", "Alarm", null, AlertType.ALARM );
Display.getDisplay(this).setCurrent( alert );


} else if( c == cmdConfirm ) {
Alert alert = new Alert( "Alert", "Confirmation", null, AlertType.CONFIRMATION );
Display.getDisplay(this).setCurrent( alert );

} else if( c == cmdError ) {
Alert alert = new Alert( "Alert", "Error", null, AlertType.ERROR );
Display.getDisplay(this).setCurrent( alert );

} else if( c == cmdWarning ) {
Alert alert = new Alert( "Alert", "Warning", null, AlertType.WARNING );
alert.setTimeout( Alert.FOREVER );
Display.getDisplay(this).setCurrent( alert );

}

}
}
في السطور من 21-34 قمنا بانشاء أمر الخروج و 5 أوامر أخرى لعرض نوافذ التنبيهات. في السطور من 28-33 قمنا باضافة هذه الأوامر الى النافذة التي سوف نعرضها على شاشة الهاتف. في السطر 34 أضافنا المتنصت الى اللنافذة mainForm. في السطر 36 عرضنا النافذة mainForm على شاشة الهاتف. الان اذا قام المستخدم بضغط أي أمر فان ال commandAction سوف تستدعى تلقائيا ويرسل لها الامر الذي ضغط علية المستخدم. في ال commandAction قمنا بفحص الامر المرسل والاستجابة بشكل صحيح لكل أمر. جميع نوافذ التنبية تعرض لمدة معينه ثم تختفي وتعود نافذة ال mainForm الى شاشة الهاتف الا النافذة الاخيرة فهي لا تختفي الا اذا ضغط المستخدم على الأمر Done المرفق معها وذلك بسبب وجود الامر
alert.setTimeout( Alert.FOREVER );  

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

إرسال تعليق