Skip to Main Content
Eclipse Cookbook
book

Eclipse Cookbook

by Steve Holzner
June 2004
Beginner to intermediate content levelBeginner to intermediate
364 pages
7h 38m
English
O'Reilly Media, Inc.
Content preview from Eclipse Cookbook

9.19. Using Swing and AWT Inside SWT

Problem

You want to use Swing or AWT graphical elements inside an SWT application.

Solution

SWT (in Eclipse 3.0) supports embedding Swing/AWT widgets inside SWT widgets. Before Version 3.0, such support worked only on Windows. In Eclipse 3.0, it’s now working in Windows for JDK 1.4 and later, as well as in GTK and Motif with early-access JDK 1.5.

Discussion

To work with AWT and Swing elements in SWT, you use the SWT_AWT class. As an example (SwingAWTApp at this book’s site), we’ll create an application with an AWT frame and panel, as well as a Swing button and text control. We’ll start with a new SWT composite widget:

Composite composite = new Composite(shell, SWT.EMBEDDED);
composite.setBounds(20, 20, 300, 200);
composite.setLayout(new RowLayout( ));

Now add an AWT Frame window object to the composite using the SWT_AWT.new_Frame method, and add an AWT Panel object to the frame:

java.awt.Frame frame = SWT_AWT.new_Frame(composite);
java.awt.Panel panel = new java.awt.Panel( );
frame.add(panel);

We can now work with Swing controls. In this example, we’ll add a Swing button and a Swing text control to the AWT panel:

final javax.swing.JButton button = new javax.swing.JButton("Click Me");
final javax.swing.JTextField text = new javax.swing.JTextField(20);
panel.add(button);
panel.add(text);

All that’s left is to connect the button to a listener to display a message when that button is clicked. You can see how that works in Example 9-5.

Example 9-5. Using Swing ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Eclipse

Eclipse

Steve Holzner
Official Eclipse 3.0 FAQs

Official Eclipse 3.0 FAQs

John Arthorne, Chris Laffra

Publisher Resources

Supplemental ContentCatalog PageErrata