06b- drawing in gui
Download
Report
Transcript 06b- drawing in gui
תכנות מכוון עצמים בשפת JAVA
הרצאה – 06חלק ב'
ציור בסיסי בJAVA -
© Keren Kalif
ביחידה זו נלמד:
האובייקט Graphics
שיטות drawוfill -
המחלקה Color
המחלקה FontוFontMetrics -
מתי מופעלת השיטה paintComponent
פרופורציות הציור
האובייקט Timer
2
© Keren Kalif
כתיבת טקסט לpanel -
השיטה מוגדרת במחלקה Component
שהיא אב של .JPanel
השיטה אחראית על הצגת תוכן החלון.
מקבלת כפרמטר את האובייקט הגרפי
איתו עובדים.
נכנסים לשיטה כל פעם כאשר
החלון מצוייר מחדש :לאחר
הקטנה ,שינוי גודל או הסתרה.
3
© Keren Kalif
draw שיטות:Graphics האובייקט
© Keren Kalif
4
drawRoundedRect :Graphics האובייקט
© Keren Kalif
5
drawPolygon שיטות:Graphics האובייקט
© Keren Kalif
6
setColor השיטה:Graphics האובייקט
© Keren Kalif
7
האובייקט :Graphicsשיטות fill
כשנצייר צורה עם מסגרת קודם
נבצע fillורק אח"כ drawכדי
שקו המסגרת יראה רציף.
8
© Keren Kalif
fillArcs שיטות:Graphics האובייקט
כיוון הזווית
© Keren Kalif
9
שינוי צבע הרקע של הJContainer -
יש לייצר Rectangleולשים
אותו על כל רקע הJPanel -
© Keren Kalif 10
setFont השיטה:Graphics האובייקט
© Keren Kalif 11
הקיימיםFont -הצגת כל ה
© Keren Kalif 12
האובייקט :Graphicsהשיטה )2( setFont
נכתוב תוכנית ובה נציג טקסט ולידו עיגול
כיצד נדע מה מהו רוחב הטקסט במסך? זה הרי תלוי בגודל הפונט
© Keren Kalif 13
האובייקט :Graphics
שימוש בFontMetrics -
קבלת מידע לגבי רוחב הטקסט
עם הפונט המבוקש
© Keren Kalif 14
מתי מופעלת השיטה ?paintComponent
בכל פעם שהחלון מצייר את עצמו מחדש:
הגדלה/הקטנה
הצגה מחדש לאחר מיזעור
הצגה מחדש לאחר שכוסה ע"י חלונות אחרים
© Keren Kalif 15
פרופורציות הציור
כל אחד מהציורים שראינו קבועים בגודלם
כלומר ,שינוי גודל החלון לא ישנה את פרופורציות הרכיבים
כאשר גודל החלון משתנה או כאשר הוא חוזר לתצוגה השיטה
paintComponentמופעלת מחדש
© Keren Kalif 16
פרופורציות הציור -הקוד
כדי שהרכיבים יהיו פרופורציוניים לגודל החלון ,יש לקבוע את
נקודות היחוס והגודל כפונקציה של אורך ורוחב החלון
getWidthוgetHeight -
מחזירות את רוחב וגובה
החלון בהתאמה
© Keren Kalif 17
ציור קו עבה
נעבוד עם אובייקט מטיפוס
,Graphics2Dשהוא בן של
המחלקה .Graphics
השיטה שקובעת את עובי הקו
הגדרת עובי הקו בהתאם
לרוחב החלון
© Keren Kalif 18
עבודה עם Timer
אובייקט לתיזמון
מחלקה המגדירה איזו פעולה
לבצע בכל פעימה של הTimer -
סגירת הTimer -
ציור החלון מחדש ע"י קריאה לrepaint -
איננו יכולים להפעיל ישירות את paint
מאחר ואין לנו את האובייקט Graphics
© Keren Kalif 19
טקסט נוסע
מדוע חייבים בכל פעם
לצייר את הרקע מחדש?
© Keren Kalif 20
חשבשבת מסתובבת ()1
© Keren Kalif 21
חשבשבת מסתובבת ()2
© Keren Kalif 22
תרגיל :תמרור פרופורציונלי
© Keren Kalif 23
תרגיל :כדורים נעים ומתרבים
יש לצייר כדור שנע
כל פגיעה בדופן צידי תחליף את כיוונו (ימין/שמאל)
כל פגיעה בדופן עליון או תחתון תחליף את כיוונו (למעלה/למטה)
כל פגיעה בדופן תייצר כדור חדש עם צבע רנדומלי שיעבוד בדיוק
עם אותם חוקים
יש להגדיר את המחלקה Ball
מה יהיו נתוניה?
מה יהיו פעולות המחלקה?
© Keren Kalif 24
25
© Keren
Kalif
:ביחידה זו למדנו
Graphics האובייקט
fill - וdraw שיטות
Color המחלקה
FontMetrics - וFont המחלקה
paintComponent מתי מופעלת השיטה
פרופורציות הציור
Timer האובייקט
© Keren Kalif 25