مطابق با توضیحات دایره المعارف  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

علاوه بر کنترلهای فوق ،Swing دارای کنترل های جدید دیگری نیز هست که هیچ جایگزینی برای آنها در کنترلهای AWT وجود ندارد که در زیر بطور مختصر آنها را معرفی خواهیم کرد.

JPasswordField : یک نوع Text Field مخصوص برای وارد کردن پسورد و کلمه عبور می باشد. در این کامپوننت قلبلیت Cut و یا Copy اطلاعات وجود نداشته، و فقط می توان اطلاعات را در آن Paste نمود.

JPasswordField

JEditorPane و JTextPane : از این دو کامپوننت برای تغییر یا ویرایش یک متن میتوان استفاده نمود.

JEditPane

JSpinner : از این کامپوننت برای حرکت در بین لیستی از مقادیر که می تواند بصورت یک آرایه رشته ای، اعداد ترتیبی و یا تاریخ باشد، میتوان استفاده نمود.

JSpinner

JToggleButton : این کامپوننت نوعی Button بوده که می تواند در حالت انتخاب نگه داشته شود. به عنوان مثال در تصویر زیر Button های North و East و South در حالت فشرده قرار دارند.

JToggleButton

JSlider : این کامپوننت شبیه کامپوننت Scrollbar از AWT بوده و برای گرفتن مقادیر از کاربر مورد استفاده قرار می گیرد. کاربر توسط آن می تواند از لیست مقادیر مشخص شده یکی را انتخاب کند.

JSlider

JFormattedTextField : از این کامپوننت برای وارد کردن اطلاعات در قالب یک فرمت مخصوص مانند تاریخ ، تلفن و اعداد میتوان استفاده نمود.

JFormattedTextField

JToolTip : این کامپوننت بص.رت پیش فرض در درون تمام کامپوننتهای Swing قرار داده شده، و وظیفه آن نمایش اطلاعات مفید در مورد یک کامپوننت، هنگامی که ماوس بر روی آن قرار می گیرد،میباشد.

 

JToolBar : این کامپوننت یک ToolBar دارای خاصیت Draggable را ایجاد کرده و می تواند در بسیاری از برنامه ها مانند تصویر زیر مورد استفاده قرار گیرد.

JToolBar

JRadioButtonMenuItem : این کامپوننت را می توان در کامپوننت JMenuBar اضافه نمود. در JMenuBar همچنین می توان از JCheckBoxMenuItem نیز استفاده کرد.

JRadioButtonMenuItem

JDesktopPane  و JInternalFrame : از این 2 کامپوننت برای ایجاد یک برنامه بصورت فرمهای MDI یا Multiple Document Interface میتوان استفاده نمود.
JDesktopPane
JColorChoose : از این کامپوننت برای انتخاب رنگها در برنامه استفاده می شود. 
JColorChoose
JOptionPane : این کامپوننت در حقیقت کامپوننتی برای نمایش پیغام در برنامه بوده و می توانید در درون آن از هر کامپوننت دیگری استفاده نمائید.
JOptionPane
JSplitPane : با استفاده از این کامپوننت شما می توانید صفحه برنامه خود را به چند قسمت تقسیم کنید و در هر قسمت از یک مجموعه کامپوننت دیگر استفاده نمائید.
JSplitPane

JTabbedPane : از این کامپوننت برای ایجاد Tab در صفحات برنامه میتوان استفاده نمود. 

JTabbedPane