תוכנית הדגמה לשם צביעה על הנייר עם AWT
מטרת תוכנית זו היא להמחיש את היכולת להדפיס בצורה סלקטיבית את התכנים של הרכיבים במיכלAWT המשובץ בתוך מיכלAWT אחר. המילים "בצורה סלקטיבית" משמשות במקרה זה כדי ליצור אבחנה בין שיטת ההדפסה המשמשת בתוכנית זו לבין השיטה המשמשת בתוכנית המכונה Print04, כפי שתואר בשלב מוקדם יותר של שיעור זה. התוכנית ההיא השתמשה במתודה printAll() כדי להדפיס את כל הרכיבים במיכל. לתוכנית זו יש את היכולת לבחור אילו מבין הרכיבים יודפסו. כמו כן יש לה את היכולת להדפיס מידע נבחר אודות רכיבים אלה. בדומה לתוכנית המכונה Print04, תוכנית זו מציבה אחד משני אובייקטי Panel מותאמים אישית הניתנים לבחירה, ושלושה אובייקטי Button ב- Frame. אובייקטי ה- Panel יודעים כיצד להדפיס את עצמם כאשר מופעלת המתודה הדרוסה שלהם paint(). לאחד מהלחצנים יש מאזין שגורם ל- Panel הנבחר הנוכחי להדפיס את עצמו. זה דורש שלכל אחד מהפנלים תהיה מתודת paint() דרוסה שבתגובה דורשת שכל אחד מהפנלים יהיה מותאם אישית של Panel שיורש מ- Panel. המתודה הדרוסה paint() מגדירה את האופן שבו מדפיס הפנל את עצמו. שני הלחצנים האחרים משמשים לבחירה בין שני אובייקטי ה- Panel להצגה והדפסה. במילים אחרות, באפשרותו של המשתמש לבחור בין שני פנלים שונים ולגרום להדפסת זה שמותקן באותו הזמן ב- Frame. כאשר מודפס ה- Panel הנבחר, מתעלמים משאר הרכיבים שב- Frame. לשם המחשה, אחד מאובייקטי ה- Panel הניתן לבחירה מכיל Lable, TextField, ו- Button שאינו פעיל. ה- Panel השני הניתן לבחירה מכיל Lable, TextField, ושני אובייקטי Button שאינם פעילים. תבנית ההדפסה שמוגדרת במתודות ה- paint() הדרוסות גורמת להדפסת הטקסט הנוכחי מה- Lable וה- TextField, ולהדפסת תוויות הכיתוב שעל אובייקטי ה- Button. תבנית הדפסה זו היא למטרות המחשה בלבד. באמצעות שיטה זו, יש לך חופש מוחלט להחליט כיצד להדפיס את להדפיס את המידע המשויך לכל אחד מרכיבי התוכנית שלך. תוכנית זו נבדקה באמצעות JDK 1.1.6 תחת Win95.