SWING چیست ؟

کلمه Swing از یک موزیک محبوب و معروف در آمریکا که در طی سالهای 1945 – 1930 پخش می‌شده است، الهام گرفته شده است. در این زمان هنوز جاوا وجود نیامده بود. کامپوننتهای AWT یک مجموعه از اولین کامپوننتها برای پلت فرم جاوا بودند که از آنها برای ایجاد برنامه‌های جاوا، قابل استفاده در محیط‌های Windows و Linux استفاده می‌شده است. این کامپوننتها خیلی کند و غیر قابل اطمینان بودند و برای تمام پلت فرم‌های جاوا نیز نمی توانستند، مورد استفاده قرار گیرند.

با توجه به مشکلات کامپوننتهای AWT در ایجاد برنامه‌های کاربردی، شرکت Sun با همکاری Netscape و سایر شرکتهای دیگر مجموعه ایی دیگر از کامپوننتها و کتابخانه‌ها را بنام Java Foundation Class با نام اختصاری JFC بوجود آورند که کنترلهای Swing نیز بخشی از آنها بودند. کنترل‌های Swing بر خلاف کنترل‌های AWT، هماهنگی کاملی با سایر فریم ورکهای جاوا داشته و بر روی تمام پلت فرم‌ها قابل استفاده می‌باشند. این کنترل‌های علاوه بر خواص کنترل‌های AWT دارای خواص جدیدی‌تری نیز بوده و معایب کنترل‌های AWT را در آنها بر طرف شده است. به عنوان مثال در کامپوننت Button از مجموعه کامپوننتهای AWT نمی‌توان از عکس استفاده کرد ولی این قابلیت در کنترل Button از کتابخانه Swing گنجانده شده است.

مهم‌ترین وجه تمایز بین کنترل‌های Swing و AWT این است که کامپوننتهای Swing همگی با حرف J شروع می‌شوند. به عنوان مثال، کنترل Jbutton از کنترل‌های Swing معادل کنترل Button از AWT است و یا کنترل JComboBox معادل کنترل Choice از مجموعه کنترل‌های AWT است. جدول زیر لیست کنترل‌های AWT و معادل آنها را در کامپوننتهای Swing نشان می‌دهد.

SWING AWT
JButton Button
JPanel Canvas
JCheckBox CheckBox
JRadioButton in ButtonGroup CheckBox in CheckBoxGroup
JComboBox Choice
JComponent Component
JPanel Container
JLabel Label
JList List
JMenu Menu
JMenuBar MenuBar
JMenuItem MenuItem
JPanel Panel
JPopupMenu PopupMenu
JScrollBar Scrollbar
JScrollPane ScrollPane
JTextArea TextArea
JTextField TestField
JApplet Applet
JDialog Dialog
JFileChooser FileDialog
JFrame Frame
JWindow Window

علاوه بر کنترلهای فوق، Swing دارای کنترل‌های جدید دیگری نیز هست که هیچ جایگزینی برای آنها در کنترلهای AWT وجود ندارد. پکیج java.swing دارای کلاس‌هایی برای کار با رابط گرافیکی است که در زیر نحوه ارث بری آنها نشان داده شده است:
swing-hierarchy
همانطور که در شکل بالا مشاهده می‌کنید در پکیج swing، کلاس‌های JButton ،JLabel و … از کلاس JComponent و این کلاس هم از کلاس Component ارث بری می‌کنند و اشیاء ساخته شده از این کلاس‌ها، کنترل‌های بصری Swing را که در شکل زیر مشاهده می‌کنید به وجود می‌آورند :
swing-controls
حال که مختصری با سویینگ آشنا شدید، در درس‌های آینده با کنترل‌های آن و نحوه استفاده از هر یک آشنا می‌شوید.