יצירת רכיבים
דרך פקודות
של שפת Java
ביצירת רכיבים דרך קובץ xml
יש המון יתרונות,
במיוחד מבחינת העיצוב:
נתן לקראות מיד
תצאה של כל הגדרת התכונה.
Dynamic creation of components
אבל יש גם חסרונות, כמובן.
בין הבולטות היא צורך
לקבל הרבה (עשרות) רכיבים מסוג מסוים.
עוד אחד: לקבל מספר רכיבים
שהוא תלוי בנתון הנקלט בזמן ביצוע
(אין אפשרות לדעת מראש כמה רכיבים צריך)
Dynamic creation of components
בין הבולטות היא צורך
לקבל הרבה (עשרות) רכיבים מסוג מסוים.
למשל: אפליקציה בנושא "מערך דו-ממדי"
בה צריך להציג על המסך
מערך בגודל 6X8
(כל תא = רכיב)
אפשר לצור את זה דרך xml,
אבל חבל על המאמץ וזמן...
Dynamic creation of components
לקבל מספר רכיבים
שהוא תלוי בנתון הנקלט בזמן ביצוע
(אין אפשרות לדעת מראש כמה רכיבים צריך).
למשל: אפליקציה לרישום ילדים לגן או בית-ספר,
כאשר לפני רישום פרטי כל ילד
הורה מזין מספר ילדים.
Dynamic creation of components
נעשה דוגמה על מערך:
איך לצור מספר רב של לחצנים,
כאשר כל לחצן מציג תא אחד במערך.
Dynamic creation of components
בגדול, אין שום בעיה לצור רכיבים
דרך שפת Java,
כי כל רכיב הוא, בפועל, עצם.
לכן פקודות ליצירת רכיבים
נראות ממש כמו כל פקודות
ליצירת עצם כללי.
Dynamic creation of components
מה שבאמת חשוב:
לאיזה רכיב לצרף את הרכיב
אותו יוצרים דרך Java!
בקובץ xml כל רכיב
באופן "טבעי" שייך לאיזה רכיב אחר
(פרט מרכיב "שורשי", רכיב ראשי)
Dynamic creation of components
אפשר לראות את ה"שייכות"
בחלון של
Component Tree
Dynamic creation of components
כאשר רוצים לצור רכיב דרך Java
צריך להחליט לאיזה רכיב
הוא יהיה שייך
ולתת id ל"רכיב הורה"
(parent element)
Dynamic creation of components
באפליקציה עם מערך דו-ממדי
בתור "רכיב הורה"
נשתמש ב-GridLayout,
איתה קל ונוח לצור
קבוצה "משובצת" של רכיבים
Dynamic creation of components
באפליקציה עם מערך דו-ממדי
בתור "רכיב הורה"
נשתמש ב-GridLayout,
איתה קל ונוח לצור
קבוצה "משובצת" של רכיבים
Dynamic creation of components
מזהה (id)
מספר עמודות
(מספר מקסימלי של תאים בכל שורה)
מתחילים לעבוד כרגיל
Dynamic creation of components
יוצרים מערך לחצנים,
וקובעים חלק מהתכונות
ומצריך רכיבים ל"רכיב הורה"
Dynamic creation of components
Dynamic creation of components
יוצרים לחצן
Dynamic creation of components
קובעים רוחב וגובה
Dynamic creation of components
מחדשים
Dynamic creation of components
מרווח פנימי
Dynamic creation of components
טקסט על הלחצן
Dynamic creation of components
מזהה לכל לחצן
Dynamic creation of components
הכי חשוב: מוסיפים רכיב חדש ל"רכיב הורה"
Dynamic creation of components
וזאת התוצאה