The JavaTM Tutorial
Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search

Trail: Creating a GUI with JFC/Swing
Lesson: Converting to Swing

Swing Replacements for AWT Components

Use the following table as a guide for choosing a Swing replacement for each AWT component used in your program.

AWT Component Closest Swing EquivalentNotes
java.applet.Applet JApplet AWT applets and Swing applets differ in several ways. See Converting Applets.
Button JButton A Swing button can include an image and/or text.
Canvas JPanel, JLabel, or another appropriate Swing component
Your choice depends on what the program uses the canvas for. See Converting Canvases for a discussion of your conversion options.
Checkbox JCheckBox or
JRadioButton
Note the `B' is capitalized in the Swing class name but not in the AWT class name.
CheckboxMenuItem JCheckBoxMenuItem Note the `B' is capitalized in the Swing class name but not in the AWT class name. Also, note that Swing menu components are true components.
Choice JComboBox Replace a Choice with an uneditable (the default) JComboBox. You might have to re-write code that handles item events. Refer to Converting Choices.
Dialog JDialog or
JOptionPane
AWT-based programs add components directly to a dialog and directly set its layout manager. In contrast, Swing-based programs add components to and set the layout manager on a JDialog's content pane.
FileDialog JFileChooser FileDialog is a dialog, while JFileChooser is a component that you can place in any top-level container. For convenience, JFileChooser provides methods that make it easy to display a file chooser in a dialog.
Frame JFrame AWT-based programs add components directly to a frame and directly set its layout manager. In contrast, Swing-based programs add components to and set the layout manager on a JFrame's content pane.
Label JLabel A Swing label can include an image and/or text. To support accessibility, use setLabelFor to associate each label with the component it describes (if any).
List JList AWT lists and Swing lists differ in many ways. See Converting Lists for information and examples. If you'd like your list to display multiple columns of information, consider upgrading to a table. If the list contains hierarchical informaiton, consider using a tree.
Menu JMenu Swing menu components are true components.
MenuBar JMenuBar Swing menu components are true components.
MenuItem JMenuItem Swing menu components are true components.
Panel JPanel You can easily add borders to Swing panels.
PopupMenu JPopupMenu Swing menu components are true components.
Scrollbar JScrollPane or
JSlider or
JProgressBar
Although Swing has a JScrollBar class, you don't usually use it directly.
ScrollPane JScrollPane You can add custom decorations, including row and column headers, to Swing scroll panes.
TextArea JTextArea Typically requires some re-coding to convert. See Converting Text Components for information and examples.
TextField JTextField For simple uses, JTextField is source-compatible with TextField. If you use text listeners you need to modify your code to use a custom document or document listener instead. If you need a password field, use JPasswordField instead. See Converting Text Components for information about non-trivial conversions and examples.
Window JWindow or
JToolTip
You might be able to substitute a non-window component, such as a JLabel, and use a layered pane.


Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search