» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
חלקי קוד מעניינים
דף ראשי  מתקדמים   טיפול בארועים במחלקות מורחבות ללא אובייקטי מאזין  תוכנית לדוגמא  חלקי קוד מעניינים גרסה להדפסה

חלקי קוד מעניינים

חלק הקוד הראשון המענין הוא היצירה וההוספה של האוביקט המורחב והחדש לאובייקט הפריים הראשי.

 

    NumericTextField myNumericTextField;
    add(myNumericTextField = 
          new NumericTextField());//add a custom component

 

 

 

 

 

 

חלק הקוד המענין הבא בתוך הבנאי לאוביקט של הרכיב המורחב החדש. כאשר הצהרה זו מבוצעת, כל מקרי הקשת המקשים שקורים באוביקט באופן אוטומטי נשלחים לארוע הנקרא PROCESSKEYEVENT().

 

   enableEvents(AWTEvent.KEY_EVENT_MASK);

 

 

 

 

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

 

 החלק של הקוד המענין הבא הוא לדרוס לגמרי את PROCESSKEYEVENT() .

 

  protected void processKeyEvent(KeyEvent e){
    if(e.getID() == KeyEvent.KEY_TYPED)//KEY_TYPED is key-down 
                                       //and key-up
      if(!((e.getKeyChar() = '0') && (e.getKeyChar() <= '9')))
        e.setKeyChar('\000');
    super.processKeyEvent(e);//always do this when 
                             // overriding processXxEvent
  }//end processKeyEvent

 

 

 

 

 

 

 

 

 

 

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

 

יש גם מספר של שיטות זמינות לעבודה עם האוביקט KEYEVENT המועבר כפרמטר. חשוב לראות כי במקרה הזה, עיבוד קורה לפני שהתו קושר עם מקרה הקשת המקש הוא למעשה מאוכסן לתוך  TEXTFIELD מורחב. לכן, זה אפשרי לעצור את התו ע"י שימוש באובייקט KEYEVENT  ולשנות אותו לפני שהוא מאוחסן.

 

הלוגיקה היא פשוט לוודא שהתו הוא תו מספרי, ואם לא, מחליף את התו על ידי תו אוקטלי עם הערך ' \000 '. זה תו לא חוקי ע"פ התייחסות המערכת, ולכן המערכת מפיקה צלילים ומסרבת לאכסן אותו לתוך ה TEXTFIELD המורחב.

 

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

 

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

 

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

 31-10-03 / 14:50  נוצר ע"י רונית רייכמן  בתאריך 
 תוכנית לדוגמא - הקודםהבא - רישום התוכנית 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 7