<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FTab</id>
		<title>Java/SWT JFace Eclipse/Tab - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FTab"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Tab&amp;action=history"/>
		<updated>2026-04-21T21:58:14Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Tab&amp;diff=5726&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Tab&amp;diff=5726&amp;oldid=prev"/>
				<updated>2010-06-01T05:57:36Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:57, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Tab&amp;diff=5725&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Tab&amp;diff=5725&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Create a CTabFolder with min and max buttons, as well as close button and  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Create a CTabFolder with min and max buttons, as well as close button and &lt;br /&gt;
 * image only on selected tab.&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolder;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolder2Adapter;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolderEvent;&lt;br /&gt;
import org.eclipse.swt.custom.CTabItem;&lt;br /&gt;
import org.eclipse.swt.graphics.GC;&lt;br /&gt;
import org.eclipse.swt.graphics.Image;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class Snippet165 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Image image = new Image(display, 16, 16);&lt;br /&gt;
    GC gc = new GC(image);&lt;br /&gt;
    gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;
    gc.fillRectangle(0, 0, 16, 16);&lt;br /&gt;
    gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));&lt;br /&gt;
    gc.fillRectangle(3, 3, 10, 10);&lt;br /&gt;
    gc.dispose();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new GridLayout());&lt;br /&gt;
    final CTabFolder folder = new CTabFolder(shell, SWT.BORDER);&lt;br /&gt;
    folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));&lt;br /&gt;
    folder.setSimple(false);&lt;br /&gt;
    folder.setUnselectedImageVisible(false);&lt;br /&gt;
    folder.setUnselectedCloseVisible(false);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 8; i++) {&lt;br /&gt;
      CTabItem item = new CTabItem(folder, SWT.CLOSE);&lt;br /&gt;
      item.setText(&amp;quot;Item &amp;quot; + i);&lt;br /&gt;
      item.setImage(image);&lt;br /&gt;
      Text text = new Text(folder, SWT.MULTI | SWT.V_SCROLL&lt;br /&gt;
          | SWT.H_SCROLL);&lt;br /&gt;
      text.setText(&amp;quot;Text for item &amp;quot; + i&lt;br /&gt;
          + &amp;quot;\n\none, two, three\n\nabcdefghijklmnop&amp;quot;);&lt;br /&gt;
      item.setControl(text);&lt;br /&gt;
    }&lt;br /&gt;
    folder.setMinimizeVisible(true);&lt;br /&gt;
    folder.setMaximizeVisible(true);&lt;br /&gt;
    folder.addCTabFolder2Listener(new CTabFolder2Adapter() {&lt;br /&gt;
      public void minimize(CTabFolderEvent event) {&lt;br /&gt;
        folder.setMinimized(true);&lt;br /&gt;
        shell.layout(true);&lt;br /&gt;
      }&lt;br /&gt;
      public void maximize(CTabFolderEvent event) {&lt;br /&gt;
        folder.setMaximized(true);&lt;br /&gt;
        folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,&lt;br /&gt;
            true));&lt;br /&gt;
        shell.layout(true);&lt;br /&gt;
      }&lt;br /&gt;
      public void restore(CTabFolderEvent event) {&lt;br /&gt;
        folder.setMinimized(false);&lt;br /&gt;
        folder.setMaximized(false);&lt;br /&gt;
        folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,&lt;br /&gt;
            false));&lt;br /&gt;
        shell.layout(true);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.setSize(300, 300);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    image.dispose();&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creates a tabbed display with a single tab ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Send questions, comments, bug reports, etc. to the authors:&lt;br /&gt;
//Rob Warner (rwarner@interspatial.ru)&lt;br /&gt;
//Robert Harris (rbrt_harris@yahoo.ru)&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
/**&lt;br /&gt;
 * Creates a tabbed display with a single tab&lt;br /&gt;
 */&lt;br /&gt;
public class TabSimple {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new TabSimple().run();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    shell.setText(&amp;quot;Simple Tabs&amp;quot;);&lt;br /&gt;
    TabFolder tabFolder = new TabFolder(shell, SWT.NONE);&lt;br /&gt;
    TabItem tabItem = new TabItem(tabFolder, SWT.NONE);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creates a tabbed display with four tabs and a few controls ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Send questions, comments, bug reports, etc. to the authors:&lt;br /&gt;
//Rob Warner (rwarner@interspatial.ru)&lt;br /&gt;
//Robert Harris (rbrt_harris@yahoo.ru)&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.*;&lt;br /&gt;
import org.eclipse.swt.graphics.Image;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
/**&lt;br /&gt;
 * Creates a tabbed display with four tabs, and a few controls on each page&lt;br /&gt;
 */&lt;br /&gt;
public class TabComplex {&lt;br /&gt;
  private static final String IMAGE_PATH = &amp;quot;images&amp;quot;&lt;br /&gt;
      + System.getProperty(&amp;quot;file.separator&amp;quot;);&lt;br /&gt;
  private Image circle;&lt;br /&gt;
  private Image square;&lt;br /&gt;
  private Image triangle;&lt;br /&gt;
  private Image star;&lt;br /&gt;
  &lt;br /&gt;
  /**&lt;br /&gt;
   * Runs the application&lt;br /&gt;
   */&lt;br /&gt;
  public void run() {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    shell.setText(&amp;quot;Complex Tabs&amp;quot;);&lt;br /&gt;
    createImages(shell);&lt;br /&gt;
    createContents(shell);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates the contents&lt;br /&gt;
   * &lt;br /&gt;
   * @param shell the parent shell&lt;br /&gt;
   */&lt;br /&gt;
  private void createContents(Shell shell) {&lt;br /&gt;
    // Create the containing tab folder&lt;br /&gt;
    final TabFolder tabFolder = new TabFolder(shell, SWT.NONE);&lt;br /&gt;
    // Create each tab and set its text, tool tip text,&lt;br /&gt;
    // image, and control&lt;br /&gt;
    TabItem one = new TabItem(tabFolder, SWT.NONE);&lt;br /&gt;
    one.setText(&amp;quot;one&amp;quot;);&lt;br /&gt;
    one.setToolTipText(&amp;quot;This is tab one&amp;quot;);&lt;br /&gt;
    one.setImage(circle);&lt;br /&gt;
    one.setControl(getTabOneControl(tabFolder));&lt;br /&gt;
    TabItem two = new TabItem(tabFolder, SWT.NONE);&lt;br /&gt;
    two.setText(&amp;quot;two&amp;quot;);&lt;br /&gt;
    two.setToolTipText(&amp;quot;This is tab two&amp;quot;);&lt;br /&gt;
    two.setImage(square);&lt;br /&gt;
    two.setControl(getTabTwoControl(tabFolder));&lt;br /&gt;
    TabItem three = new TabItem(tabFolder, SWT.NONE);&lt;br /&gt;
    three.setText(&amp;quot;three&amp;quot;);&lt;br /&gt;
    three.setToolTipText(&amp;quot;This is tab three&amp;quot;);&lt;br /&gt;
    three.setImage(triangle);&lt;br /&gt;
    three.setControl(getTabThreeControl(tabFolder));&lt;br /&gt;
    TabItem four = new TabItem(tabFolder, SWT.NONE);&lt;br /&gt;
    four.setText(&amp;quot;four&amp;quot;);&lt;br /&gt;
    four.setToolTipText(&amp;quot;This is tab four&amp;quot;);&lt;br /&gt;
    four.setImage(star);&lt;br /&gt;
    // Select the third tab (index is zero-based)&lt;br /&gt;
    tabFolder.setSelection(2);&lt;br /&gt;
    // Add an event listener to write the selected tab to stdout&lt;br /&gt;
    tabFolder.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(org.eclipse.swt.events.SelectionEvent event) {&lt;br /&gt;
        System.out.println(tabFolder.getSelection()[0].getText() + &amp;quot; selected&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates the images&lt;br /&gt;
   * &lt;br /&gt;
   * @param shell the parent shell&lt;br /&gt;
   */&lt;br /&gt;
  private void createImages(Shell shell) {&lt;br /&gt;
    try {&lt;br /&gt;
      circle = new Image(shell.getDisplay(), new FileInputStream(IMAGE_PATH&lt;br /&gt;
          + &amp;quot;circle.gif&amp;quot;));&lt;br /&gt;
      square = new Image(shell.getDisplay(), new FileInputStream(IMAGE_PATH&lt;br /&gt;
          + &amp;quot;square.gif&amp;quot;));&lt;br /&gt;
      star = new Image(shell.getDisplay(), new FileInputStream(IMAGE_PATH&lt;br /&gt;
          + &amp;quot;star.gif&amp;quot;));&lt;br /&gt;
      triangle = new Image(shell.getDisplay(), new FileInputStream(IMAGE_PATH&lt;br /&gt;
          + &amp;quot;triangle.gif&amp;quot;));&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      // Images not found; handle gracefully&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Disposes the images&lt;br /&gt;
   */&lt;br /&gt;
  private void disposeImages() {&lt;br /&gt;
    if (circle != null)&lt;br /&gt;
      circle.dispose();&lt;br /&gt;
    if (square != null)&lt;br /&gt;
      square.dispose();&lt;br /&gt;
    if (star != null)&lt;br /&gt;
      star.dispose();&lt;br /&gt;
    if (triangle != null)&lt;br /&gt;
      triangle.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Gets the control for tab one&lt;br /&gt;
   * &lt;br /&gt;
   * @param tabFolder the parent tab folder&lt;br /&gt;
   * @return Control&lt;br /&gt;
   */&lt;br /&gt;
  private Control getTabOneControl(TabFolder tabFolder) {&lt;br /&gt;
    // Create a composite and add four buttons to it&lt;br /&gt;
    Composite composite = new Composite(tabFolder, SWT.NONE);&lt;br /&gt;
    composite.setLayout(new FillLayout(SWT.VERTICAL));&lt;br /&gt;
    new Button(composite, SWT.PUSH).setText(&amp;quot;Button one&amp;quot;);&lt;br /&gt;
    new Button(composite, SWT.PUSH).setText(&amp;quot;Button two&amp;quot;);&lt;br /&gt;
    new Button(composite, SWT.PUSH).setText(&amp;quot;Button three&amp;quot;);&lt;br /&gt;
    new Button(composite, SWT.PUSH).setText(&amp;quot;Button four&amp;quot;);&lt;br /&gt;
    return composite;&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Gets the control for tab two&lt;br /&gt;
   * &lt;br /&gt;
   * @param tabFolder the parent tab folder&lt;br /&gt;
   * @return Control&lt;br /&gt;
   */&lt;br /&gt;
  private Control getTabTwoControl(TabFolder tabFolder) {&lt;br /&gt;
    // Create a multi-line text field&lt;br /&gt;
    return new Text(tabFolder, SWT.BORDER | SWT.MULTI | SWT.WRAP);&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Gets the control for tab three&lt;br /&gt;
   * &lt;br /&gt;
   * @param tabFolder the parent tab folder&lt;br /&gt;
   * @return Control&lt;br /&gt;
   */&lt;br /&gt;
  private Control getTabThreeControl(TabFolder tabFolder) {&lt;br /&gt;
    // Create some labels and text fields&lt;br /&gt;
    Composite composite = new Composite(tabFolder, SWT.NONE);&lt;br /&gt;
    composite.setLayout(new RowLayout());&lt;br /&gt;
    new Label(composite, SWT.LEFT).setText(&amp;quot;Label One:&amp;quot;);&lt;br /&gt;
    new Text(composite, SWT.BORDER);&lt;br /&gt;
    new Label(composite, SWT.RIGHT).setText(&amp;quot;Label Two:&amp;quot;);&lt;br /&gt;
    new Text(composite, SWT.BORDER);&lt;br /&gt;
    return composite;&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * The entry point for the application&lt;br /&gt;
   * &lt;br /&gt;
   * @param args the command line arguments&lt;br /&gt;
   */&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new TabComplex().run();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Demonstrates CTabFolder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Send questions, comments, bug reports, etc. to the authors:&lt;br /&gt;
//Rob Warner (rwarner@interspatial.ru)&lt;br /&gt;
//Robert Harris (rbrt_harris@yahoo.ru)&lt;br /&gt;
import org.eclipse.swt.*;&lt;br /&gt;
import org.eclipse.swt.custom.*;&lt;br /&gt;
import org.eclipse.swt.events.*;&lt;br /&gt;
import org.eclipse.swt.graphics.*;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
/**&lt;br /&gt;
 * This class demonstrates CTabFolder&lt;br /&gt;
 */&lt;br /&gt;
public class ShowCTabFolder {&lt;br /&gt;
  // Since CTabFolder does not have a getInsertMark() method,&lt;br /&gt;
  // store the value so we can keep track of it&lt;br /&gt;
  private int insertMark = -1;&lt;br /&gt;
  private CTabFolder tabFolder;&lt;br /&gt;
  /**&lt;br /&gt;
   * Runs the application&lt;br /&gt;
   */&lt;br /&gt;
  public void run() {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setText(&amp;quot;Show CTabFolder&amp;quot;);&lt;br /&gt;
    createContents(shell);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates the window&amp;quot;s contents&lt;br /&gt;
   * &lt;br /&gt;
   * @param shell the parent shell&lt;br /&gt;
   */&lt;br /&gt;
  private void createContents(Shell shell) {&lt;br /&gt;
    shell.setLayout(new GridLayout(1, true));&lt;br /&gt;
    // Create the buttons to create tabs&lt;br /&gt;
    Composite composite = new Composite(shell, SWT.NONE);&lt;br /&gt;
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&lt;br /&gt;
    composite.setLayout(new RowLayout());&lt;br /&gt;
    createButtons(composite);&lt;br /&gt;
    // Create the tabs&lt;br /&gt;
    tabFolder = new CTabFolder(shell, SWT.TOP);&lt;br /&gt;
    tabFolder.setBorderVisible(true);&lt;br /&gt;
    tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));&lt;br /&gt;
    Display display = shell.getDisplay();&lt;br /&gt;
    // Set up a gradient background for the selected tab&lt;br /&gt;
    tabFolder.setSelectionBackground(new Color[] {&lt;br /&gt;
        display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW),&lt;br /&gt;
        display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW),&lt;br /&gt;
        display.getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW)}, new int[] { 50,&lt;br /&gt;
        100});&lt;br /&gt;
    // Add a listener to get the close button on each tab&lt;br /&gt;
    tabFolder.addCTabFolderListener(new CTabFolderAdapter() {&lt;br /&gt;
      public void itemClosed(CTabFolderEvent event) {}&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates the buttons for moving the insert mark and adding a tab&lt;br /&gt;
   * &lt;br /&gt;
   * @param composite the parent composite&lt;br /&gt;
   */&lt;br /&gt;
  private void createButtons(Composite composite) {&lt;br /&gt;
    // Move mark left&lt;br /&gt;
    Button button = new Button(composite, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;&amp;lt;&amp;lt;&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        if (insertMark &amp;gt; -1) {&lt;br /&gt;
          --insertMark;&lt;br /&gt;
          resetInsertMark();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    // Move mark right&lt;br /&gt;
    button = new Button(composite, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;&amp;gt;&amp;gt;&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        if (insertMark &amp;lt; tabFolder.getItemCount() - 1) {&lt;br /&gt;
          ++insertMark;&lt;br /&gt;
          resetInsertMark();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    // Add a tab&lt;br /&gt;
    button = new Button(composite, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Add Tab&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        new CTabItem(tabFolder, SWT.NONE, insertMark + 1).setText(&amp;quot;Tab (&amp;quot;&lt;br /&gt;
            + (insertMark + 1) + &amp;quot;)&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Moves the insert mark to the new location&lt;br /&gt;
   */&lt;br /&gt;
  private void resetInsertMark() {&lt;br /&gt;
    tabFolder.setInsertMark(insertMark, true);&lt;br /&gt;
    // Workaround for bug #32846&lt;br /&gt;
    if (insertMark == -1) {&lt;br /&gt;
      tabFolder.redraw();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * The application entry point&lt;br /&gt;
   * &lt;br /&gt;
   * @param args the command line arguments&lt;br /&gt;
   */&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new ShowCTabFolder().run();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== implement tab traversal (behave like a tab group) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Canvas example snippet: implement tab traversal (behave like a tab group)&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Color;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.Canvas;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class Snippet21 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Color red = display.getSystemColor(SWT.COLOR_RED);&lt;br /&gt;
    final Color blue = display.getSystemColor(SWT.COLOR_BLUE);&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    Button b = new Button(shell, SWT.PUSH);&lt;br /&gt;
    b.setBounds(10, 10, 100, 32);&lt;br /&gt;
    b.setText(&amp;quot;Button&amp;quot;);&lt;br /&gt;
    shell.setDefaultButton(b);&lt;br /&gt;
    final Canvas c = new Canvas(shell, SWT.BORDER);&lt;br /&gt;
    c.setBounds(10, 50, 100, 32);&lt;br /&gt;
    c.addListener(SWT.Traverse, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        switch (e.detail) {&lt;br /&gt;
        /* Do tab group traversal */&lt;br /&gt;
        case SWT.TRAVERSE_ESCAPE:&lt;br /&gt;
        case SWT.TRAVERSE_RETURN:&lt;br /&gt;
        case SWT.TRAVERSE_TAB_NEXT:&lt;br /&gt;
        case SWT.TRAVERSE_TAB_PREVIOUS:&lt;br /&gt;
        case SWT.TRAVERSE_PAGE_NEXT:&lt;br /&gt;
        case SWT.TRAVERSE_PAGE_PREVIOUS:&lt;br /&gt;
          e.doit = true;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    c.addListener(SWT.FocusIn, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        c.setBackground(red);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    c.addListener(SWT.FocusOut, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        c.setBackground(blue);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    c.addListener(SWT.KeyDown, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        System.out.println(&amp;quot;KEY&amp;quot;);&lt;br /&gt;
        for (int i = 0; i &amp;lt; 64; i++) {&lt;br /&gt;
          Color c1 = red, c2 = blue;&lt;br /&gt;
          if (c.isFocusControl()) {&lt;br /&gt;
            c1 = blue;&lt;br /&gt;
            c2 = red;&lt;br /&gt;
          }&lt;br /&gt;
          c.setBackground(c1);&lt;br /&gt;
          c.update();&lt;br /&gt;
          c.setBackground(c2);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    Text t = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    t.setBounds(10, 85, 100, 32);&lt;br /&gt;
    Text r = new Text(shell, SWT.MULTI | SWT.BORDER);&lt;br /&gt;
    r.setBounds(10, 120, 100, 32);&lt;br /&gt;
    c.setFocus();&lt;br /&gt;
    shell.setSize(200, 200);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prevent an item from closing ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * CTabFolder example snippet: prevent an item from closing&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolder;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolder2Adapter;&lt;br /&gt;
import org.eclipse.swt.custom.CTabFolderEvent;&lt;br /&gt;
import org.eclipse.swt.custom.CTabItem;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class Snippet82 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    CTabFolder folder = new CTabFolder(shell, SWT.BORDER);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;
      CTabItem item = new CTabItem(folder, SWT.CLOSE);&lt;br /&gt;
      item.setText(&amp;quot;Item &amp;quot; + i);&lt;br /&gt;
      Text text = new Text(folder, SWT.MULTI);&lt;br /&gt;
      text.setText(&amp;quot;Content for Item &amp;quot; + i);&lt;br /&gt;
      item.setControl(text);&lt;br /&gt;
    }&lt;br /&gt;
    final CTabItem specialItem = new CTabItem(folder, SWT.CLOSE);&lt;br /&gt;
    specialItem.setText(&amp;quot;Don&amp;quot;t Close Me&amp;quot;);&lt;br /&gt;
    Text text = new Text(folder, SWT.MULTI);&lt;br /&gt;
    text.setText(&amp;quot;This tab can never be closed&amp;quot;);&lt;br /&gt;
    specialItem.setControl(text);&lt;br /&gt;
    folder.addCTabFolder2Listener(new CTabFolder2Adapter() {&lt;br /&gt;
      public void close(CTabFolderEvent event) {&lt;br /&gt;
        if (event.item.equals(specialItem)) {&lt;br /&gt;
          event.doit = false;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    final CTabItem noCloseItem = new CTabItem(folder, SWT.NONE);&lt;br /&gt;
    noCloseItem.setText(&amp;quot;No Close Button&amp;quot;);&lt;br /&gt;
    Text text2 = new Text(folder, SWT.MULTI);&lt;br /&gt;
    text2.setText(&amp;quot;This tab does not have a close button&amp;quot;);&lt;br /&gt;
    noCloseItem.setControl(text2);&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prevent Tab from traversing out of a control ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Control example snippet: prevent Tab from traversing out of a control&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.TraverseEvent;&lt;br /&gt;
import org.eclipse.swt.events.TraverseListener;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class Snippet127 {&lt;br /&gt;
public static void main (String [] args) {&lt;br /&gt;
  Display display = new Display ();&lt;br /&gt;
  Shell shell = new Shell (display);&lt;br /&gt;
  Button button1 = new Button(shell, SWT.PUSH);&lt;br /&gt;
  button1.setBounds(10,10,80,30);&lt;br /&gt;
  button1.setText(&amp;quot;no traverse&amp;quot;);&lt;br /&gt;
  button1.addTraverseListener(new TraverseListener () {&lt;br /&gt;
    public void keyTraversed(TraverseEvent e) {&lt;br /&gt;
      switch (e.detail) {&lt;br /&gt;
        case SWT.TRAVERSE_TAB_NEXT:&lt;br /&gt;
        case SWT.TRAVERSE_TAB_PREVIOUS: {&lt;br /&gt;
          e.doit = false;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  Button button2 = new Button (shell, SWT.PUSH);&lt;br /&gt;
  button2.setBounds(100,10,80,30);&lt;br /&gt;
  button2.setText(&amp;quot;can traverse&amp;quot;);&lt;br /&gt;
  shell.pack ();&lt;br /&gt;
  shell.open();&lt;br /&gt;
  while (!shell.isDisposed ()) {&lt;br /&gt;
    if (!display.readAndDispatch ()) display.sleep ();&lt;br /&gt;
  }&lt;br /&gt;
  display.dispose ();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set the tab traversal order of children ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Composite example snippet: set the tab traversal order of children&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.layout.RowLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.rubo;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Control;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.List;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolItem;&lt;br /&gt;
public class Snippet75 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new RowLayout());&lt;br /&gt;
    Composite c1 = new Composite(shell, SWT.BORDER);&lt;br /&gt;
    c1.setLayout(new RowLayout());&lt;br /&gt;
    Button b1 = new Button(c1, SWT.PUSH);&lt;br /&gt;
    b1.setText(&amp;quot;B1&amp;quot;);&lt;br /&gt;
    Button[] radios = new Button[3];&lt;br /&gt;
    for (int i = 0; i &amp;lt; radios.length; i++) {&lt;br /&gt;
      radios[i] = new Button(c1, SWT.RADIO);&lt;br /&gt;
      radios[i].setText(&amp;quot;R&amp;quot; + (i == 1 ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;&amp;quot;) + i);&lt;br /&gt;
    }&lt;br /&gt;
    Button b2 = new Button(c1, SWT.PUSH);&lt;br /&gt;
    b2.setText(&amp;quot;B2&amp;quot;);&lt;br /&gt;
    List l1 = new List(c1, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    l1.setItems(new String[] { &amp;quot;L1&amp;quot; });&lt;br /&gt;
    Button b3 = new Button(c1, SWT.PUSH);&lt;br /&gt;
    b3.setText(&amp;quot;B&amp;amp;3&amp;quot;);&lt;br /&gt;
    Button b3_1 = new Button(c1, SWT.PUSH);&lt;br /&gt;
    b3_1.setText(&amp;quot;B3_1&amp;quot;);&lt;br /&gt;
    Composite c2 = new Composite(shell, SWT.BORDER);&lt;br /&gt;
    c2.setLayout(new RowLayout());&lt;br /&gt;
    Button b4 = new Button(c2, SWT.PUSH);&lt;br /&gt;
    b4.setText(&amp;quot;B&amp;amp;4&amp;quot;);&lt;br /&gt;
    Button b5 = new Button(c2, SWT.PUSH);&lt;br /&gt;
    b5.setText(&amp;quot;B&amp;amp;5&amp;quot;);&lt;br /&gt;
    List l2 = new List(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    l2.setItems(new String[] { &amp;quot;L2&amp;quot; });&lt;br /&gt;
    ToolBar tb1 = new ToolBar(shell, SWT.FLAT | SWT.BORDER);&lt;br /&gt;
    ToolItem i1 = new ToolItem(tb1, SWT.RADIO);&lt;br /&gt;
    i1.setText(&amp;quot;I1&amp;quot;);&lt;br /&gt;
    ToolItem i2 = new ToolItem(tb1, SWT.RADIO);&lt;br /&gt;
    i2.setText(&amp;quot;I&amp;amp;2&amp;quot;);&lt;br /&gt;
    Combo combo1 = new Combo(tb1, SWT.READ_ONLY | SWT.BORDER);&lt;br /&gt;
    combo1.setItems(new String[] { &amp;quot;C1&amp;quot; });&lt;br /&gt;
    combo1.setText(&amp;quot;C1&amp;quot;);&lt;br /&gt;
    combo1.pack();&lt;br /&gt;
    ToolItem i3 = new ToolItem(tb1, SWT.SEPARATOR);&lt;br /&gt;
    i3.setWidth(combo1.getSize().x);&lt;br /&gt;
    i3.setControl(combo1);&lt;br /&gt;
    i3.setText(&amp;quot;I3&amp;quot;);&lt;br /&gt;
    ToolItem i4 = new ToolItem(tb1, SWT.PUSH);&lt;br /&gt;
    i4.setText(&amp;quot;I4&amp;quot;);&lt;br /&gt;
    ToolItem i5 = new ToolItem(tb1, SWT.CHECK);&lt;br /&gt;
    i5.setText(&amp;quot;I5&amp;quot;);&lt;br /&gt;
    Button b6 = new Button(shell, SWT.PUSH);&lt;br /&gt;
    b6.setText(&amp;quot;B&amp;amp;6&amp;quot;);&lt;br /&gt;
    Composite c4 = new Composite(shell, SWT.BORDER);&lt;br /&gt;
    c4.setSize(32, 32);&lt;br /&gt;
    Composite c5 = new Composite(c4, SWT.BORDER);&lt;br /&gt;
    c5.setSize(20, 20);&lt;br /&gt;
    Control[] list1 = new Control[] { b2, b1, b3_1, b3 };&lt;br /&gt;
    c1.setTabList(list1);&lt;br /&gt;
    Control[] list2 = new Control[] { c1, b6, tb1, c4, c2, l2 };&lt;br /&gt;
    shell.setTabList(list2);&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SWT Tab Control ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.TabFolder;&lt;br /&gt;
import org.eclipse.swt.widgets.TabItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TabClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    shell.setText(&amp;quot;Tab Folder Example&amp;quot;);&lt;br /&gt;
    shell.setSize(450, 250);&lt;br /&gt;
    final TabFolder tabFolder = new TabFolder(shell, SWT.BORDER);&lt;br /&gt;
    for (int loopIndex = 0; loopIndex &amp;lt; 10; loopIndex++) {&lt;br /&gt;
      TabItem tabItem = new TabItem(tabFolder, SWT.NULL);&lt;br /&gt;
      tabItem.setText(&amp;quot;Tab &amp;quot; + loopIndex);&lt;br /&gt;
      Text text = new Text(tabFolder, SWT.BORDER);&lt;br /&gt;
      text.setText(&amp;quot;This is page &amp;quot; + loopIndex);&lt;br /&gt;
      tabItem.setControl(text);&lt;br /&gt;
    }&lt;br /&gt;
    tabFolder.setSize(400, 200);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tabbed Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Image;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.layout.RowLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Group;&lt;br /&gt;
import org.eclipse.swt.widgets.Label;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.TabFolder;&lt;br /&gt;
import org.eclipse.swt.widgets.TabItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TabbedShellExample {&lt;br /&gt;
  Display d;&lt;br /&gt;
  Shell s;&lt;br /&gt;
  TabbedShellExample() {&lt;br /&gt;
    d = new Display();&lt;br /&gt;
    s = new Shell(d);&lt;br /&gt;
    s.setSize(250, 200);&lt;br /&gt;
    &lt;br /&gt;
    s.setText(&amp;quot;A Tabbed Shell Example&amp;quot;);&lt;br /&gt;
    s.setLayout(new FillLayout());&lt;br /&gt;
    TabFolder tf = new TabFolder(s, SWT.BORDER);&lt;br /&gt;
    TabItem ti1 = new TabItem(tf, SWT.BORDER);&lt;br /&gt;
    ti1.setText(&amp;quot;Option Group&amp;quot;);&lt;br /&gt;
    ti1.setControl(new GroupExample(tf, SWT.SHADOW_ETCHED_IN));&lt;br /&gt;
    TabItem ti2 = new TabItem(tf, SWT.BORDER);&lt;br /&gt;
    ti2.setText(&amp;quot;Grid&amp;quot;);&lt;br /&gt;
    ti2.setControl(new GridComposite(tf));&lt;br /&gt;
    TabItem ti3 = new TabItem(tf, SWT.BORDER);&lt;br /&gt;
    ti3.setText(&amp;quot;Text&amp;quot;);&lt;br /&gt;
    Composite c1 = new Composite(tf, SWT.BORDER);&lt;br /&gt;
    c1.setLayout(new FillLayout());&lt;br /&gt;
    Text t = new Text(c1, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);&lt;br /&gt;
    ti3.setControl(c1);&lt;br /&gt;
    TabItem ti4 = new TabItem(tf, SWT.BORDER);&lt;br /&gt;
    ti4.setText(&amp;quot;Settings&amp;quot;);&lt;br /&gt;
    Composite c2 = new Composite(tf, SWT.BORDER);&lt;br /&gt;
    c2.setLayout(new RowLayout());&lt;br /&gt;
    Text t2 = new Text(c2, SWT.BORDER | SWT.SINGLE | SWT.WRAP&lt;br /&gt;
        | SWT.V_SCROLL);&lt;br /&gt;
    Button b = new Button(c2, SWT.PUSH | SWT.BORDER);&lt;br /&gt;
    b.setText(&amp;quot;Save&amp;quot;);&lt;br /&gt;
    ti4.setControl(c2);&lt;br /&gt;
    s.open();&lt;br /&gt;
    while (!s.isDisposed()) {&lt;br /&gt;
      if (!d.readAndDispatch())&lt;br /&gt;
        d.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    d.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class GroupExample extends Composite {&lt;br /&gt;
  final Button b1;&lt;br /&gt;
  final Button b2;&lt;br /&gt;
  final Button b3;&lt;br /&gt;
  public GroupExample(Composite c, int style) {&lt;br /&gt;
    super(c, SWT.NO_BACKGROUND);&lt;br /&gt;
    this.setSize(110, 75);&lt;br /&gt;
    this.setLayout(new FillLayout());&lt;br /&gt;
    final Group g = new Group(this, style);&lt;br /&gt;
    g.setSize(110, 75);&lt;br /&gt;
    g.setText(&amp;quot;Options Group&amp;quot;);&lt;br /&gt;
    b1 = new Button(g, SWT.RADIO);&lt;br /&gt;
    b1.setBounds(10, 20, 75, 15);&lt;br /&gt;
    b1.setText(&amp;quot;Option One&amp;quot;);&lt;br /&gt;
    b2 = new Button(g, SWT.RADIO);&lt;br /&gt;
    b2.setBounds(10, 35, 75, 15);&lt;br /&gt;
    b2.setText(&amp;quot;Option Two&amp;quot;);&lt;br /&gt;
    b3 = new Button(g, SWT.RADIO);&lt;br /&gt;
    b3.setBounds(10, 50, 80, 15);&lt;br /&gt;
    b3.setText(&amp;quot;Option Three&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public String getSelected() {&lt;br /&gt;
    if (b1.getSelection())&lt;br /&gt;
      return &amp;quot;Option One&amp;quot;;&lt;br /&gt;
    if (b2.getSelection())&lt;br /&gt;
      return &amp;quot;Option Two&amp;quot;;&lt;br /&gt;
    if (b3.getSelection())&lt;br /&gt;
      return &amp;quot;Option Three&amp;quot;;&lt;br /&gt;
    return &amp;quot;None Selected&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class GridComposite extends Composite {&lt;br /&gt;
  public GridComposite(Composite c) {&lt;br /&gt;
    super(c, SWT.BORDER);&lt;br /&gt;
    GridLayout gl = new GridLayout();&lt;br /&gt;
    gl.numColumns = 3;&lt;br /&gt;
    this.setLayout(gl);&lt;br /&gt;
    final Label l1 = new Label(this, SWT.BORDER);&lt;br /&gt;
    l1.setText(&amp;quot;Column One&amp;quot;);&lt;br /&gt;
    final Label l2 = new Label(this, SWT.BORDER);&lt;br /&gt;
    l2.setText(&amp;quot;Column Two&amp;quot;);&lt;br /&gt;
    final Label l3 = new Label(this, SWT.BORDER);&lt;br /&gt;
    l3.setText(&amp;quot;Column Three&amp;quot;);&lt;br /&gt;
    final Text t1 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    final Text t2 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    final Text t3 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    final Text t4 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    final Text t5 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    final Text t6 = new Text(this, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    GridData gd = new GridData();&lt;br /&gt;
    gd.horizontalAlignment = GridData.CENTER;&lt;br /&gt;
    l1.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData();&lt;br /&gt;
    gd.horizontalAlignment = GridData.CENTER;&lt;br /&gt;
    l2.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData();&lt;br /&gt;
    gd.horizontalAlignment = GridData.CENTER;&lt;br /&gt;
    l3.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t1.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t2.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t3.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t4.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t5.setLayoutData(gd);&lt;br /&gt;
    gd = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
    t6.setLayoutData(gd);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new TabbedShellExample();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TabFolder Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/******************************************************************************&lt;br /&gt;
 * All Right Reserved. &lt;br /&gt;
 * Copyright (c) 1998, 2004 Jackwind Li Guojie&lt;br /&gt;
 * &lt;br /&gt;
 * Created on 2004-4-9 14:11:34 by JACK&lt;br /&gt;
 * $Id$&lt;br /&gt;
 * &lt;br /&gt;
 *****************************************************************************/&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.SelectionEvent;&lt;br /&gt;
import org.eclipse.swt.events.SelectionListener;&lt;br /&gt;
import org.eclipse.swt.graphics.Image;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Label;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.TabFolder;&lt;br /&gt;
import org.eclipse.swt.widgets.TabItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TabFolderExample {&lt;br /&gt;
  Display display = new Display();&lt;br /&gt;
  Shell shell = new Shell(display);&lt;br /&gt;
  &lt;br /&gt;
  Image icon = new Image(shell.getDisplay(), &amp;quot;jexp.gif&amp;quot;);&lt;br /&gt;
  public TabFolderExample() {&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    &lt;br /&gt;
    final TabFolder tabFolder = new TabFolder(shell, SWT.BOTTOM);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Button button = new Button(tabFolder, SWT.NULL);&lt;br /&gt;
    button.setText(&amp;quot;This is a button.&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    TabItem tabItem1 = new TabItem(tabFolder, SWT.NULL);&lt;br /&gt;
    tabItem1.setText(&amp;quot;item #1&amp;quot;);&lt;br /&gt;
    tabItem1.setImage(icon);&lt;br /&gt;
    tabItem1.setControl(button);&lt;br /&gt;
    &lt;br /&gt;
    Text text = new Text(tabFolder, SWT.MULTI);&lt;br /&gt;
    text.setText(&amp;quot;This is a text control.&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    TabItem tabItem2 = new TabItem(tabFolder, SWT.NULL);&lt;br /&gt;
    tabItem2.setText(&amp;quot;item #2&amp;quot;);&lt;br /&gt;
    tabItem2.setImage(icon);&lt;br /&gt;
    tabItem2.setControl(text);&lt;br /&gt;
    &lt;br /&gt;
    Label label = new Label(tabFolder, SWT.NULL);&lt;br /&gt;
    label.setText(&amp;quot;This is a text lable.&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    TabItem tabItem3 = new TabItem(tabFolder, SWT.NULL);&lt;br /&gt;
    tabItem3.setText(&amp;quot;item #3&amp;quot;);&lt;br /&gt;
    tabItem3.setControl(label);&lt;br /&gt;
    &lt;br /&gt;
    tabFolder.addSelectionListener(new SelectionListener() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Selected item index = &amp;quot; + tabFolder.getSelectionIndex());&lt;br /&gt;
        System.out.println(&amp;quot;Selected item = &amp;quot; + (tabFolder.getSelection() == null ? &amp;quot;null&amp;quot; : tabFolder.getSelection()[0].toString()));&lt;br /&gt;
      }&lt;br /&gt;
      public void widgetDefaultSelected(SelectionEvent e) {&lt;br /&gt;
        widgetSelected(e);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    //tabFolder.setSelection(new TabItem[]{tabItem2, tabItem3});&lt;br /&gt;
    //tabFolder.setSelection(2);&lt;br /&gt;
    &lt;br /&gt;
    shell.setSize(400, 120);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    //textUser.forceFocus();&lt;br /&gt;
    &lt;br /&gt;
    System.out.println(tabFolder.getSelectionIndex());&lt;br /&gt;
    // Set up the event loop.&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        // If no more entries in event queue&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  private void init() {&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new TabFolderExample();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>