Form Item Item Command 1 השתלמות פלאפוניה : שיעור 4
כל הרכיבים הגראפיים 2 Form מתפקד כמיכל של Item םי-.
טופס Form 3 סוג של מסך.(Screen) מין ממשק משתמש שמתפקד כמיכל שיכול להכיל הרבה סוגים של פריטים (Item) גראפיים. שמרחיבה Screen שהוא מרחיב את לזכרו.Displayable לכן מכיל את כל תכונותיהן: כותרת, טיקר, ניתן להצגה (ע"י (setcurrent() וכו'. נזכיר שדרישה מינימאלית למסך 96X54. pixels אם תוכן הטופס גדול יותר מהמסך אז באפן אוטומטי מאפשר גלילה.scrollable עבאס סאמח
פריטים Items 4 הפריטים הם רכיבי ממ"ג קטנים היורשים מהמחלקה,Item שניתן להוסיפם ל Form ומוצגות באופן אוטומטי על המסך יש לנו 8 סוגים נעבור על כל אחד. נזכיר השימוש בפעולה setcurrentitem(item של המחלקה item),display מציגה את הטופס המכיל הפריט item וממקדת את התצוגה עליו. לכל פריט יש רוחב וגובהה מינימאלי שמחושב לפי סוג ותוכן הפריט. אפשר לקבל אותו ע"י,getMinimumWidth().getMinimumHeight() אפשר לקבוע מידות אחרות ע"י הפעולה: setpreferredsize(int width, int height). עבאס סאמח
הוספת/ פריט לטופס 5 str משתמש בפעולות הממשק של :Form public int append(item item) public int append(string str) public int append(image image) שתי הפעולות האחרונות מסופקות לנוחות המשתמש והמחרוזת.ImageItem לפריט image והתמונה לפריט.StringItem הופכת כל פריט מקבל אינדקס החל מ 0. אז: משנה הפריט שנמצא במיקום // item) public void set(int index, Item מוסיפה פריט למיקום // item) public void insert(int index, Item מחיקה לפי מיקום // index) public void delete(int מספר הפריטים // size() public int קבלת הפניה לפריט במיקום המצוין // index) public Item get(int עבאס סאמח
ChoiceGroup 6 public ChoiceGroup(String label, בנאי // choicetype) int סוגים כמו EXCLUSIVE, :List.POPUP ובנוסף MULTIPLE,,insert,append : הוספה/הסרה.delete בחירה כמו List,getSelectedIndex,getSelectedFlags,setSelectedIndex.setSelectedFlags עבאס סאמח
DateField 7 JME- Samih Abbas משמש להצגה ולקלט זמן ותאריך בנאי: public DateField(String label, int mode) public DateField(String label, int mode, TimeZone timezone) אופן התצוגה: DateField.DATE תאריך בלבד. DateField.TIME זמן בלבד. DateField.DATE_TIME זמן ותאריך. דוגמא: new DateField("Time", DateField.TIME) public Date getdate() public void setdate(date date) פלאפוניה-
StringItem 8 בנאי: public StringItem(String label, String text) StringItem(String label, String text, int appearancemode) appearancemode: Item.PLAIN, Item.HYPERLINK, Item.BUTTON דוגמא: עבאס סאמח new StringItem("Hyper-Link ", "hyperlink", Item.HYPERLINK);
TextField 9 בנאי: public TextField(String label, String text, int maxsize, int constraints) פשוט בתיבת טקסט. כמו זה שורה אחת. לקבלת הקלט: String getstring() דוגמא: new TextField("URL", "", 15, TextField.URL) עבאס סאמח
ImageItem 10 בנאי: public void ImageItem( String טקסט ליד התמונה // label, התמונה // img, Image int layout, /מיקום// סידור טקסט אלטנטיבי alttext) String כאשר לא ניתן להציג התמונה// דוגמא: Image img= Image.createImage( /midp/uidemo/duke.png"); עבאס סאמח imageitem = new ImageItem("hi", img), imageitem.layout_center, "sorry");
ImageItem 11 אופקי מרכז משמעות סוג LAYOUT_CENTER לפי סידור המיכל (Form) LAYOUT_DEFAULT שמאלי ישור הפריט שאחרי בא ממוקם בשורה חדשה ישור ימני בשורה חדשה LAYOUT_LEFT LAYOUT_NEWLINE_AFTER LAYOUT_NEWLINE_BEFORE LAYOUT_RIGHT
טעינת תמונה פלאפוניה- 12 Image img=null; try { img = Image.createImage( "/midp midp/uidemo/duke.png") /Duke.png"); } catch (IOException ex) { ex.printstacktrace(); } Image.createImage(String name) טעינת התמונה: הוא מיקום התמונה יחסית למידלית (עיין מיקום התמונה: ה name בתמונה ובדוגמא). אם התמונה נמצאת באותה תיקיה של המידלית אז מספיק לציין את שמה. טיפול בחריגה: פעולה הטעינה לא בטוחה ייתכן שם התמונה לא חוקי לכן אז "זורקת חריגה". ה try..catch מתנהגים כמו,if..else נסה try) ( טעינה אם הושלמה ללא בעיות אז בסדר ממשכים אחרי בלוק ה,catch אם הייתה בעיה אז נזרקת חריגה ונכנסים ל catch כדי לטפל בבעיה. Abbas JME- Samih
Gauge 13 new Gauge("Interactive", true, 10, 0); new Gauge("Indefinite - Running", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING)); מתאר ציר התקדמות. public Gauge( טקטסט שליד// label, String סוג //: interactive, boolean אם true מצב אינטראקטיבי מתאפשרת עם המשתמש שיכול לשנות אינטראקציה את הערכים ע"י החצים, (כמו עוצמת קול). אם false מצב לא אינטראקטיבי אז אין אינטראקציה עם המשתמש. (כמו תיאור התקדמות טעינה או שמירה) ערך מקסימאלי // maxvalue, int ערך מינימאלי // initialvalue); int
Gauge 14 במצב הלא אינטראקטיבי (כשאר הערך המכסימלי הו הקבוע (Gauge.INDEFINITE יש שני סוגים: 1. :incremental מתאר משהו מדיד והתקדמות ממושכת. (כמו ציר מתקדם). שעליך מתאר :INCREMENTAL_UPDATING להשלים משהו והוא יתעדכן בהתאם. :INCREMENTAL_IDLE מתאר שמשהו אמור להמשיך אבל בינתיים לא קורה דבר. :Continuous מתאר משהו לא מדיד ומתאר המשכיות. (כמו אנימציה) :CONTINUOUS_RUNNING מתאר משהו מתמשך. :CONTINUOUS_IDLE מתאר שמשהו מתמשך אבל בינתיים לא קורה דבר..1.2.2.1.2
Spacer 15 public Spacer(int minwidth, int minheight) רווח ריק בין פריטים ברוחב וגובהה מינימאלי.
Layout 16 LAYOUT_DEFAULT סידור לפי Form LAYOUT_LEFT שמאל LAYOUT_RIGHT ימין LAYOUT_CENTER מרכז אופקי LAYOUT_TOP למעלה LAYOUT_BOTTOM למטה LAYOUT_VCENTER מרכז במאונך LAYOUT_NEWLINE_BEFORE בשורה חדשה LAYOUT_NEWLINE_AFTER הפריט הבא בשורה חדשה LAYOUT_SHRINK צמצם רוחב למינימום LAYOUT_EXPAND הרחב למקסימום LAYOUT_VSHRINK צמצם גובה למינימום LAYOUT_VEXPAND הגדל גובהה למקסימום ה Form מסדר את ה פריטים משמאל לימין ומלמעלה למטה. בברירת המחדל ראינו שהוא מסדר אותם מלמעלה למטה. בעמוד לכל פריט אפשר לקבוע איך יסודר ע"י הפעולה setlayout שמקבלת ערך שלם המתאר ה Layout הרצוי. אפשר להשתמש ביותר מכלל ע"י הקישור הלוגי. OR כללי סידור MIDP 2.0 במקום LAYOUT_2 MIDP 1.0 style. פלאפוניה- עבאס סאמח JME- Samih Abbas
דוגמא 17 LAYOUT_2 LAYOUT_LEFT LAYOUT_NEWLINE_AFTER LAYOUT_2 LAYOUT_CENTER LAYOUT_NEWLINE_AFTER LAYOUT_2 LAYOUT_RIGHT LAYOUT_NEWLINE_AFTER
Item Commands 18 יש אפשרות להוסיף פקד לפריט בטופס, ע"י הפעולה (של עצמם מטיפוס.addCommand() : (Item פקד זה לא יראה ברשימת הפקדים של הטופס אם הפריט ששיך לו לא ממוקד (נבחר ע"י החצים). של פריט יש ממשק מאזין שנקרא: לפקד.ItemCommandListener הוספת המאזין לפריט ע"י:.setItemCommandListener() לממשק ההאזנה קיימת פעולה אחת למימוש: public void commandaction(command c, Item item) היא התגובה להפעלת הפקד של הפריט, ומקבלת שני פרמטרים הפקד והפריט ששיך לו.
default command 19 הפריט גם תומך ב.default command לכן אחד מפקדי הפריט יכול להיות כזה, ע"י: setdefaultcommand פקד זה מופעל כשאר לוחצים על מקש הבחירה.(select) (הערה: גם פקד זה יופיע ברשימת הפקדים בטופס). דבר זה מקל כך שהפריטים יהיו יותר ניגשים.
ItemStateListener 20 האפליקציה יכולה להעיר/להגיב על שינוי שנגרם לפריט ע"י המשתמש באמצעות מימוש ממשק המאזין.ItemStateListener פריטים שניתנים לשינוי כמו: אוTextField. DateField, להוספת המאזין: setitemlistener().form.setitemlistener(this); Gauge, ChoiceGroup, והתגובה תהיה במימוש הפעולה: public void itemstatechanged(item item)
תרגילים: 21.1 לבנות יישום שמכיל טופס דוגמת התרגיל של מערכת שבועית למורה. לא לשכוח מסך נוסף של התוצאה. לבנות יישום מכיל טופס שמכיל gauge שמייצג אחוזים שלמים (0..100), שדה מספרי, מקש לביצוע החישוב וטקסט להצגת תוצאת חישוב האחוז ממספר הקלט. שפר את היישום כך שיהיה בלי מקש החישוב ועבור כל שינוי באחוז או במספר תוצג התוצאה מיידית. לבנות יישום המרות חכם, המאפשר כמה סוגי המרות. (מטבע, משקל, טמפרטורה, אורך וכו')..1.2.3 עבאס סאמח