代码很简单,如下所示: 
package swt_jface.demo1; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.graphics.GC; 
import org.eclipse.swt.graphics.Image; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
public class Main { 
public static void main(String[] args) { 
Display display = new Display(); 
Image small = new Image(display, 16, 16); 
GC gc = new GC(small); 
gc.setBackground(display.getSystemColor(SWT.COLOR_RED)); 
gc.fillArc(0, 0, 16, 16, 45, 270); 
gc.dispose(); 
Image large = new Image(display, 32, 32); 
gc = new GC(large); 
gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE)); 
gc.fillArc(0, 0, 32, 32, 45, 270); 
gc.dispose(); 
Shell shell = new Shell(display); 
shell.setText("Small and Large icons"); 
shell.setImages(new Image[] {small, large}); 
Shell shell2 = new Shell(display); 
shell2.setText("Small icon"); 
shell2.setImage(small); 
shell.open(); 
shell2.open(); 
while (!shell.isDisposed()) { 
if (!display.readAndDispatch()) 
display.sleep(); 
} 
display.dispose(); 
} 
}
下面是打开子画面的代码: 
package swt_jface.demo1; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.events.SelectionEvent; 
import org.eclipse.swt.events.SelectionListener; 
import org.eclipse.swt.graphics.Point; 
import org.eclipse.swt.graphics.Rectangle; 
import org.eclipse.swt.layout.RowLayout; 
import org.eclipse.swt.widgets.Button; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
public class DialogShell { 
public DialogShell() { 
Display display = new Display(); 
final Shell shell = new Shell(display); 
shell.setLayout(new RowLayout()); 
shell.setSize(500, 200); 
final Button openDialog = new Button(shell, SWT.PUSH); 
openDialog.setText("Click here to rate this book ..."); 
openDialog.addSelectionListener(new SelectionListener() { 
public void widgetSelected(SelectionEvent e) { 
final Shell dialog = new Shell(shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); 
dialog.setLayout(new RowLayout()); 
final String[] ratings = 
new String[] {"Killer!", "Good stuff", "So-so", "Needs work" }; 
final Button[] radios = new Button[ratings.length]; 
for (int i = 0; i < ratings.length; i++) { 
radios[i] = new Button(dialog, SWT.RADIO); 
radios[i].setText(ratings[i]); 
} 
Button rateButton = new Button(dialog, SWT.PUSH); 
rateButton.setText("Rate!"); 
rateButton.addSelectionListener(new SelectionListener() { 
public void widgetSelected(SelectionEvent e) { 
for (int i = 0; i < radios.length; i++) 
if (radios[i].getSelection()) openDialog.setText("Rating: " + ratings[i]); 
dialog.close(); 
} 
public void widgetDefaultSelected(SelectionEvent e) { 
} 
}); 
dialog.pack(); 
dialog.open(); 
Rectangle shellBounds = shell.getBounds(); 
Point dialogSize = dialog.getSize(); 
dialog.setLocation(shellBounds.x + (shellBounds.width - dialogSize.x) / 2, shellBounds.y + (shellBounds.height - dialogSize.y) / 2); 
} 
public void widgetDefaultSelected(SelectionEvent e) { 
} 
}); 
shell.open(); 
while (!shell.isDisposed()) { 
if (!display.readAndDispatch()) { 
display.sleep(); 
} 
} 
display.dispose(); 
} 
public static void main(String[] args) { 
new DialogShell(); 
} 
}