דיון כללי
בזמן תכנות עם AWT, תוכל למקם אובייקט פנל באובייקט מסגרת ולמקם רכיבים אחרים על אובייקט הפנל כרצונך, או שאתה יכול פשוט לשים רכיבים ישירות על השטח הנראה לעין באובייקט המסגרת.
השטח הנראה לעין של מסגרת או Jframe זהו התחום (bounds) פחות המפה (inset). משתמשים במפות על מנת להחשיב את השטח המכוסה על ידי הגבולות, והערכי המפות בארבעת הצדדים הופכים זמינים על ידי עוררות הפונקציה בשם getInsets() על גבי האובייקט.
לא תוכל למקם רכיבים ישירות על האזור הנראה של אובייקט ה- Jframe.
אובייקט מסוג JrootPane ממוקם באופן אוטומטי ב-Jframe כך שמכסה לחלוטין את האזור הנראה של אובייקט ה- Jframe.
כך או כך, אם ברצונך למקם רכיבים ב- Jframe, עליך להתמודד עם אובייקט JrootPane.
דרך אחת להתמודד עם זה, וזוהי הדרך המומלצת בהרבה דיונים עדכניים בנושא, היא פשוט להתעלם מנתונים טכניים ולהחדיר קריאה לפונקצית getContentPane בין הפוינטר ל-Jframe ןפונקצית add().
זו אינה הגישה שלי. גישתי היא תחילה להבין מדוע עליך לעשות זאת, ובמקרים בהם זהו הדבר המתאים לעשות, פשוט עשה זאת.
במקרים בהם עוררות getContentPane() אינה הדבר ההולם, עשה את הדבר שהוא המתאים ביותר.
שים לב: תמצא דיון רב במהלך שיעור זה אודות הימצאות חלק מהרכיבים על גבי רכיבים אחרים.
דיונים אלו מתייחסים רק לרכיבים קלים ב- Swing. תזכור שהרכיבים הכבדים ב-Swing תמיד נמצאים מעל לרכיבים הקלים, ולא חשוב מה נאמר בטקסט של שיעור זה.