סינפסה
JrootPane הוא מכל.
האובייקט של JrootPane אשר ממוקם באופן אוטומטי באובייקט Jframe מכיל לפחות עוד שני אובייקטים נוספים.
1. אובייקט מסוג JlayeredPane אשר נתייחס אליו כאל layeredPane.
2. אובייקט מסוג Jpanel אשר נתייחס אליו כאל glassPane.
(ישנו בר תפריט אופציונלי אשר נכנס במקום כלשהו כאן ,אך מכיוון שאינו הכרחי להבנה ברמה זו,
בחרתי להימנע מדיון בו עד לדיון בתפריטי Swing).
LayeredPane ו- glassPane גם כן ממלאים את האזור נראה באובייקט Jframe
GlassPane נמצא מעל ל- layeredPane וכפי שהשם מרמז הוא בדרך כלל שקוף.
רכיבים על גבי ה- layeredPane הם נראים דרך glassPane ואירועי עכבר יכולים לחדור דרך
glassPane ולהגיע לרכיבים על גבי ה- layeredPane כל עוד ה-glassPane הוא שקוף.
LayeredPaneמכיל רכיב נוסף מסוג Jpanel אליו נתייחסם כ- contentPane?
זוהי אותה השמשה בה טיפלנו כאשר עוררנו את פונקצית getContentPane() על אובייקט
ה- Jframe.
ל- layeredPane התנהגות מעניינת מאד.
כאשר נוסיף רכיבים ל ContentPane, הם מתווספים באותה רמה והרכיבים המתווספים קודם
נצבעים על רכיבים המתווספים מאוחר יותר.
אולם, כאשר נוסיף רכיבים ל- layeredPane נוכל לתת מספר שכבה ספציפי עליו אנו רוצים
שהרכיב יצטייר.
רכיבים המצוירים על שכבות בעלי מספרים גבוהים (סימון אלגברי) מצוירים על רכיבים על גבי שכבות
בעלי מספור נמוך יותר (סימון אלגברי). (מספרים שליליים גדולים הם קטנים ממספרים חיוביים
קטנים במקרה זה, כאשר מספר השכבה הקטן ביותר המתאפשר הוא 29,99 -).
בנוסף, מבחר פונקציות זמינות להזזת הרכיבים משכבה לשכבה בזמן הריצה. זה נותן לנו את היכולת
לא רק לשלוט בסדר בו הרכיבים מצוירים תחילה, אלא גם לשנות סדר זה מאוחר יותר בזמן ההרצה.
רעיון תצוגה זה הוא גישה כוחנית יותר מאשר החדרת getContentPane() בין הפוינטר לאובייקט
Jframe ועוררות הפונקציה add(). (לעשיית שכבות יש היסטוריה של תוצאות מועילות בגרפיקת
מחשב כגון עיצוב בעזרת מחשב ותכנות משחקים).
אם כך, איפה נכנס אובייקט ה- contentPane אשר שייך ל- layeredPane?
רכיבים על contentPane מצוירים מאחורי רכיבים אשר יכולים להתווסף ישירות ל- layeredPane.
למעשה, מיקום השכבה של contentPane הוא מספר שכבה 30,000 - . מספר השכבה הקטן
ביותר בו ניתן להשתמש על מנת למקם רכיב ישירות על השכבה הוא 29,999 -
(נמקם אחד שם מאוחר יותר בתוכנית דוגמא).