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، کلاسهای JButton ،JLabel و … از کلاس JComponent و این کلاس هم از کلاس Component ارث بری میکنند و اشیاء ساخته شده از این کلاسها، کنترلهای بصری Swing را که در شکل زیر مشاهده میکنید به وجود میآورند :
حال که مختصری با سویینگ آشنا شدید، در درسهای آینده با کنترلهای آن و نحوه استفاده از هر یک آشنا میشوید.