תוכנית דוגמא
המטרה העיקרית של תוכנית זו היא להדגים את השימוש ב- contentPane ו- layeredPane.
התוכנית ממקמת אובייקט Jframe על המסך כ-GUI ראשוני.
JTextField אדום ו-Jlabel ממוקמים על ה- contentPane על אובייקט ה-Jframe.
(שים לב שה- Jlabel הופך אפור ב- L&F המטאלי.)
ה- JtextField ממקום במרכז ה-Jframe תוך שימוש בברירת מחדל של תצוגת הגבולות.
ה- Jlabel ממקום במיקום דרומי על אובייקט ה- Jframe.
Jbutton ירוק ו-Jbutton צהוב ממקומים על גבי ה- layeredPane. מסתבר שתצוגת המחדל
שלLayeredPane היא אבסולוטית או אפס.אובייקטים של ה- Jbutton ממוקמים בכוונה על מנת לחפוף זה את זה במידה מה. שני הכפתורים מופיעים בחלק העליון של אובייקט ה- JtextField האדום על ה- contentPane.
(רכיבים על שכבות של שמשות הם תמיד מעל לרכיבים של contentPane).
ה- Jbutton הירוק ממוקם תחילה במיקום שכבה +1 והצהוב ממוקם תחילה
במיקום שכבה – 29999 אשר מהווה את הגבול בכיוון השלילי.
מאזיני פעולות נרשמים על שני הכפתורים. כאשר הכפתור העליון נלחץ, הפעולה היא להחליף את מעקומי השכבות של שני הכפתורים וכך גורמת לתחתון לעבור למעלה.
מספר שורות קוד נכללים על מנת לחקור את יחסי ההורה-ילד בשמשות השונות.
הפלט מחלק זה של התוכנית מופיע להלן.
שים לב ששורות שבירה נוספו באופן ידני על מנת לגרום לחומר להתאים לפורמט זה.
Root pane is: class com.sun.java.swing. Glass pane is: class com.sun.java.swing. Layered pane is: class com.sun.java.swing.JLayeredPane Content pane is: class com.sun.java.swing.JPanel An interpretation of the above is: The root pane is of type JRootPane. |
תיעוד JavaSoft מציין ש- contentPane ממוקם במיקום שכבה שווה ערך ל- (-30000)
ב- layeredPane.
ה- glassPane מהווה מעין מסתורין עבורי בנקודת זמן זו (5/12/98). לא יכלתי לצייר
על ה- glassPane. ניסיון למקם אובייקט Jbutton או אובייקט JtoolTip על ה- glassPane
נדחה על הידע המלקט עם הודעות שגיאה ש- Jbutton ו- JtoolTip אינם יכולים
להיות ממומרים לסוג JpopUpMenu. איני יודע אם זוהי ההתנהגות הנכונה או שמא זהו באג.
התוכנית נבדקה תוך שימוש ב- JDK 1.1.6 ו- Swing 1.0.1 תחת Win95.