מהם היתרונות/חסרונות של Swing על פני AWT?

0
8955

Swing מספק סט עשיר יותר של רכיבים מאשר AWT. הם 100% מבוססי Java.

AWT לעומת זאת פותחה מתוך מחשבה שאם רכיב או יכולת של רכיב לא היה זמין בפלטפורמה אחת, הוא לא יהיה זמין באף פלטפורמה. משהו נייד במהירות מפלטפורמה x ל-y עד z. בשל האופי המבוסס על עמיתים של AWT, ייתכן שמה שעשוי לעבוד ביישום אחד לא יעבוד באחר, מכיוון שהשילוב של עמיתים לא יהיה חזק באותה מידה. רבות מבעיות ה-AWT המקוריות היו ניתנות למעקב אחר הבדלים בהטמעות עמיתים.

זה לא אומר שיש פחות באגים ב-Swing, אם כי רובם בחוץ בימים אלה. רק שאם קיים באג ב-Swing, זו אותה בעיה בכל הפלטפורמות, מה שלא היה במקרה של AWT.

[הערת מנהל שאלות נפוצות] יש עוד כמה יתרונות ל-Swing על פני AWT:

  • Swing מספקת גם רכיבים נוספים וגם פונקציונליות נוספת לרכיבי החלפת AWT
  • רכיבי Swing יכולים לשנות את המראה שלהם בהתבסס על ספריית ה"מראה והתחושה" הנוכחית שנמצאת בשימוש. אתה יכול להשתמש באותו מראה ותחושה כמו הפלטפורמה שבה אתה נמצא, או להשתמש במראה ותחושה שונים
  • רכיבי Swing עוקבים אחר פרדיגמת ה-Model-View-Controller (MVC), ובכך יכולים לספק ממשק משתמש גמיש הרבה יותר.
  • Swing מספק "תוספות" לרכיבים, כגון:
    • אייקונים על רכיבים רבים
    • גבולות דקורטיביים לרכיבים
    • עצות כלים לרכיבים
  • רכיבי הנדנדה הם קלי משקל (פחות עתירי משאבים מ-AWT)
  • Swing מספק חציצה כפולה מובנית
  • Swing מספקת תמיכה באיתור באגים של צבע כאשר אתה בונה רכיבים משלך

לסווינג יש גם כמה חסרונות:

  • זה דורש Java 2 או קובץ JAR נפרד
  • אם אתה לא מאוד זהיר בעת התכנות, זה יכול להיות איטי יותר מ-AWT (כל הרכיבים מצוירים)
  • ייתכן שרכיבי סווינג שנראים כמו רכיבים מקוריים לא יפעלו בדיוק כמו רכיבים מקוריים