مطابق با توضیحات دایره المعارف Britannica ، کلمه Swing از یک موزیک محبوب و معروف در آمریکا که در طی سالهای 1945 – 1930 پخش میشده است، الهام گرفته شده است. در این زمان هنوز جاوا هنوز چاوا به وجود نیامده بود. در 23 May سال 1995 ، John Gage ، مدیر اداره پژوهش های شرکت Sun ، جاوا را به عنوان یک تکنولوژی به دنیا معرفی کرد . با تولد هسته مرکزی جاوا، فریم ورکهای دیگری مانند Abstract Window Toolkit و یا AWT متولد شدند.
کامپوننتهای 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 Replacement |
AWT Component |
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 |
JPasswordField : یک نوع Text Field مخصوص برای وارد کردن پسورد و کلمه عبور می باشد. در این کامپوننت قلبلیت Cut و یا Copy اطلاعات وجود نداشته، و فقط می توان اطلاعات را در آن Paste نمود.
JEditorPane و JTextPane : از این دو کامپوننت برای تغییر یا ویرایش یک متن میتوان استفاده نمود.
JSpinner : از این کامپوننت برای حرکت در بین لیستی از مقادیر که می تواند بصورت یک آرایه رشته ای، اعداد ترتیبی و یا تاریخ باشد، میتوان استفاده نمود.
JToggleButton : این کامپوننت نوعی Button بوده که می تواند در حالت انتخاب نگه داشته شود. به عنوان مثال در تصویر زیر Button های North و East و South در حالت فشرده قرار دارند.
JSlider : این کامپوننت شبیه کامپوننت Scrollbar از AWT بوده و برای گرفتن مقادیر از کاربر مورد استفاده قرار می گیرد. کاربر توسط آن می تواند از لیست مقادیر مشخص شده یکی را انتخاب کند.
JFormattedTextField : از این کامپوننت برای وارد کردن اطلاعات در قالب یک فرمت مخصوص مانند تاریخ ، تلفن و اعداد میتوان استفاده نمود.
JToolTip : این کامپوننت بص.رت پیش فرض در درون تمام کامپوننتهای Swing قرار داده شده، و وظیفه آن نمایش اطلاعات مفید در مورد یک کامپوننت، هنگامی که ماوس بر روی آن قرار می گیرد،میباشد.
JToolBar : این کامپوننت یک ToolBar دارای خاصیت Draggable را ایجاد کرده و می تواند در بسیاری از برنامه ها مانند تصویر زیر مورد استفاده قرار گیرد.
JRadioButtonMenuItem : این کامپوننت را می توان در کامپوننت JMenuBar اضافه نمود. در JMenuBar همچنین می توان از JCheckBoxMenuItem نیز استفاده کرد.
JDesktopPane و JInternalFrame : از این 2 کامپوننت برای ایجاد یک برنامه بصورت فرمهای MDI یا Multiple Document Interface میتوان استفاده نمود.