» נושאי לימוד
» נושאי לימוד
יום חמישי 1 במאי 2025
תכנית לדוגמא שניה
דף ראשי  מתקדמים   FlowLayout  תכנית לדוגמא שניה גרסה להדפסה

 

תכנית לדוגמא שניה

 

לתכנית זו יותר חומר מהקודמת. על אף שלא עושה דבר שימושי במיוחד, היא כן ממחישה כיצד לסגל מערך דינמית בזמן הרצה.

 

דיון

 

תכנית זו מתוכננת להידור ולהרצה תחת 1.1 JDK.

חמישה כפתורים מוספים למסגרת תוך שימוש באובייקט FlowLayout כמנהל השרטוט עם פער של 3 פיקסלים בין רכיבים גם בכיוון האופקי וגם בכיוון האנכי.

אובייקט מאזין לפעולה ActionListener מובזק ונרשם להאזין לאירועי פעולה בכל חמשת הכפתורים, בעוד כל החמישה חולקים את אותו מטפל באירוע.

ההתנהגות של מתחזק  ה ActionEvent היא להגדיל את הריווח בין רכיבים בכל פעם שכל אחד מהכפתורים נלחץ. זה מושג ע"י:

1. העלאת תכונות Vgap & Hgap של אובייקט ה  FlowLayout.

2. הצבת מנהל השרטוט של המסגרת להיות אובייקט  FlowLayout ששונה.

3. נתינת תוקף למסגרת.

צעד נתינת התוקף נחוץ על מנת שהשינוי ישפיע ויהפוך גלוי עין .

הקשה חוזרת ונישנת על כל אחד מהמקשים גורמת לכפתורים להיפרד אחד מהשני .

לבסוף לא כולם ייכנסו במסגרת והם מתחילים להיעלם מהקצוות. ניתן לרום להופעתם המחודשת ע"י הגדלת המסגרת

אובייקט מאזין אירוע windowClosing() מובזק ונרשם על המסגרת לסיים את התכנית כאשר המסגרת נסגרת.

התכנית נבחנה תוך שימוש ב1.1 JDK בהרצה תחת חלונות 95.

 

מקטעי קוד מעניינים

 

התכנית מכילה מספר מקטעי קוד מעניינים.

מקטע הקוד הבא מבזיק אובייקט FlowLayout ליישור למרכז עם פער של 3 פיקסלים בין רכיבים בשני הכיוונים אופקי ואנכי. אובייקט זה מועבר אז למתודת ה setLayout() לכונן את מנהל השרטוט לאובייקט המסגרת

    FlowLayout myFlowLayout = 
                     new FlowLayout(FlowLayout.CENTER,3,3);
    myFrame.setLayout(myFlowLayout);

 

 

הקוד הבא טיפוסי לזה  שנהוג בכדי להבזיק אובייקט ActionListener ולרשומו על כל חמשת הכפתורים
 

    MyActionListener myActionListener = 
        new MyActionListener(myFlowLayout,myFrame);
    button1.addActionListener(myActionListener);

.

 

 

 

אחריוהקוד התפעולי באובייקט ה ActionListener אשר משנה את המערך דינמית בזמן ההרצה. קוד זה מגיב בכל פעם שאחד הכפתורים נלחץ, תוך שימוש במתודות get & set על התכונות Vgap & Hgapשל אובייקט ה  FlowLayoutלשינוי הריווח בין רכיבים באובייקט השרטוט.

אז באה לידי שימוש מתודת הsetLayout() בכדי לכונן את אובייקט השרטוט המשונה כמנהל השרטוט עבור אובייקט המסגרת. לאחר מכן, ניתן תוקף לאובייקט המסגרת  תהליך שנחוץ כדי לגרום לשינויים להפוך אפקטיביים וגלויים .

 

  public void actionPerformed(ActionEvent e){
    myFlowLayoutObject.setHgap(
                        myFlowLayoutObject.getHgap() + 5 );
    myFlowLayoutObject.setVgap(
                        myFlowLayoutObject.getVgap() + 5 );
    myFrameObject.setLayout(myFlowLayoutObject);
    myFrameObject.validate();
  }//end actionPerformed()

 

 

 

 

 

 

 

 08-11-03 / 21:30  נוצר ע"י רונית רייכמן  בתאריך 
 התכנית לדוגמא "plain vanilla" - הקודםהבא - רישום תכנית 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 8