| Function/Role/Aspect |
AWT |
Swing |
SWT (style) |
| Display static text |
Label |
JLabel |
Label, CLabel |
| Display multi-line static text |
Multiple Labels |
Multiple JLabels or JLabel with HTML content |
Multiple Labels or Label with newlines |
| Display multi-line formatted static text |
Multiple Labels with different fonts |
JLabel with HTML content |
Multiple Labels with different fonts |
| Single-line text entry |
TextField |
JTextField |
Text(SWT.SINGLE) |
| Multi-line text entry |
TextArea |
JTextArea |
Text(SWT.MULTI) |
| Display an image |
N/A |
JLabel |
Label |
| Display text and image |
N/A |
JLabel |
CLabel |
| ToolTip pop-up help |
N/A |
setToolTip on component, subclass JToolTip |
setToolTip on control |
| Styled text entry |
N/A |
JEditorPane |
StyledText |
| Select from list of items |
List |
JList |
List |
| Simple push button with text |
Button |
JButton |
Button(SWT.PUSH) |
| Simple push button with text and/or image |
N/A |
JButton |
Button(SWT.PUSH) |
| Drawing area; possibly for custom controls |
Canvas |
JPanel |
Canvas |
| On/off check box |
CheckBox |
JCheckBox |
Button(SWT.CHECK) |
| Radio selection |
CheckBoxGroup |
ButtonGroup and menus |
Group and Menu |
| Select from a drop-down list |
Choice |
JComboBox |
Combo, CCombo |
| Enter text or select from a drop-down list |
N/A |
JComboBox |
Combo, CCombo |
| Scrollable area |
ScrollPane |
JScrollPane |
Create Scrollable subclass |
| Top level windows |
Dialog, Frame, Window |
JDialog, JFrame, JWindow |
Shell with different styles |
| Generic window |
Window |
JWindow |
Shell |
| Frame window |
Frame |
JFrame |
Shell(SWT.SHELL_TRIM) |
| Dialog window |
Dialog |
JDialog |
Shell(SWT.DIALOG_TRIM) |
| Menu |
Menu |
JMenu |
Menu |
| MenuItem |
MenuItem |
JMenuItem |
MenuItem |
| Menu shortcuts |
Generic keystrokes |
same as AWT |
host dependent mnemonics and accelerators |
| Pop-up menu |
PopupMenu |
JPopupMenu |
Menu(SWT.POPUP) |
| Menu bars |
MenuBar |
JMenuBar |
Menu(SWT.BAR) |
| Display an insertion caret |
N/A |
Caret |
Caret |
| Web browser |
N/A |
JTextPane (HTML 3.2) |
Browser (via embedded browser) |
| Embed control in web page |
Applet |
JApplet |
Host control (ex. OLE) |
| Generic container of other controls |
Panel |
JPanel |
Composite |
| Generic container of other controls with a border |
Panel (if drawn manually) |
JPanel with a Border |
Composite(SWT.BORDER) |
| Generic container of other controls with a border and title |
N/A |
JPanel with a TitledBorder |
Group |
| Radio button (one of set on) |
Checkbox |
JRadioButton |
Button(SWT.RADIO) |
| Control extent of radio buttons |
CheckboxGroup |
RadioButtonGroup |
Group |
| Arrow buttons |
N/A |
JButton with image |
Button(SWT.ARROW) |
| Supports int'l text orientations |
via ComponentOrientation |
same as AWT |
Many components support styles for this |
| Focus Traversal |
Policy and Manager objects |
same as AWT |
Next on control |
| Custom dialogs |
Dialog subclass |
JDialog subclass |
Dialog subclass |
| Access to system events |
EventQueue services |
same as AWT |
Display services (less robust than AWT) |
| System access dialogs |
FileDialog |
JColorChooser, JFileChooser |
ColorDialog, DirectoryDialog, FileDialog, FontDialog, PrintDialog |
| Display simple message dialog |
N/A (must subclass Dialog) |
JOptionPane static methods |
MessageBox with numerous styles |
| Display simple prompting dialog |
N/A (must subclass Dialog) |
JOptionPane static methods |
N/A (classes exist in JFace to do this) |
| Layout managers |
BorderLayout, CardLayout, FlowLayout, GridLayout, GridBagLayout |
AWT plus BoxLayout, CenterLayout, SpringLayout |
FillLayout, FormLayout, GridLayout, RowLayout, StackLayout |
| Basic drawing control |
Canvas |
JPanel |
Canvas |
| Basic drawing |
Graphics and Graphics2D objects - Basic shapes and text, arbitrary Shapes and Strokes, Bezier, fills, etc. |
same as AWT |
GC object - Basic shapes and text |
| Drawing transforms |
Affine, composites |
same as AWT |
N/A |
| Off screen drawing |
BufferedImage, drawImage |
same as AWT |
Image, drawImage |
| Double buffering |
Manual |
Automatic or manual |
Manual unless provided by host control |
| Printing |
PrintJob and PrintGraphics |
same as AWT |
draw to Printer device |
| Custom colors |
Color |
same as AWT |
Color |
| Custom fonts |
Font, FontMetrics |
same as AWT |
Font |
| Cursors selection |
Cursor |
same as AWT |
Cursor |
| Image features |
load from file, create dynamically, extensive edits |
same as AWT |
load from file, create dynamically, basic edits |
| Input automation |
Robot |
same as AWT |
N/A |
| Display a tool bar |
N/A |
JToolBar |
ToolBar, CoolBar |
| Display a progress bar |
N/A |
JProgressBar |
ProgressBar |
| Divide space between areas |
N/A |
JSplitPane |
Sash or SashForm |
| Display tabbed areas |
N/A |
JTabbedPane |
TabFolder, CTabFolder |
| Display tabular info |
N/A |
JTable |
Table |
| Format table columns |
N/A |
TableColumn |
TableColumn |
| Display hierarchical info |
N/A |
JTree |
Tree |
| Select from range of values |
N/A |
JSlider |
Slider |
| Select from discrete range of values |
N/A |
JSpinner |
Scale |
| Access to the base display |
Toolkit, GraphicsConfiguration, GraphicsDevice |
same as AWT |
Display |
| Add items to the system tray |
N/A |
N/A |
Tray |
| Key: N/A - Not available. In many cases, this feature can be created, with varying degrees of difficulty, by creating custom controls or containers of controls or by other custom programming. |