当前页面: 开发资料首页 → Eclipse 专题 → 使用Eclipse进行SWT编程(5)
摘要: 使用Eclipse进行SWT编程(5)
8.3. 组合窗口组件Composite Widgets
组合窗口组件可以容纳其他的组合窗口组件。Composite类是组合窗口组件的父类。
图 10. Composite可以容纳其他的组合类
组合类可以容纳其他的组合类。这种容纳关系是用一个组合窗口组件类的构造函数来建造的。与Swing相比,SWT没有add() 方法;作为代替,你必须使用构造函数来建立包容关系结构。
正如图10中所看到的,Shell类也是一个组合类。也就是说,Shell对象,可以容纳其他的组合类。
组合类是可以卷起的,也就是说可以使用SWT.H_SCROLL和SWT.V_SCROLL常量给组合窗口组件加上滚动条。
8.3.1. Table窗口组件
Table窗口组件可以显示一批字符串项或者图片。与其他的组合窗口组件相比,不能给table窗口组件增加组合控件。Table窗口组件的子构件必须是TableItem类型的。
图 11. Table窗口组件
表7中的常量可以用于table窗口组件
<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 396.75pt; BORDER-BOTTOM: silver 1pt outset; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-border-alt: outset silver .75pt" cellspacing="0" cellpadding="0" width="529" border="1"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt inset; WIDTH: 396.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" width="529" colspan="2">表 7. SWT Table style bit常量
</td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 109.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="146">SWT.MULTI
SWT.SINGLE
使能够进行单一或者多项选择
</td></tr><tr style="mso-yfti-irow: 2"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 109.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="146">SWT.FULL_SELECTION
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 287.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="383">使能够进行行全选
</td></tr><tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 109.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="146">SWT.CHECK
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 287.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="383">在每一行的开始显示一个选择框
</td></tr></table>源代码 8 中的代码片断表明了含有两列的table组件的使用方法
<table class="MsoNormalTable" style="WIDTH: 315pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="420" border="0"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 315pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="420">源代码 8. Table窗口组件例子
</td></tr><tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #eeeeee; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 315pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="420">final Table table =
new Table(shell,SWT.SINGLE);
TableColumn col1 =
new TableColumn(table,SWT.LEFT);
col1.setText("Coloumn 1");
col1.setWidth(80);
TableColumn col2 =
new TableColumn(table,SWT.LEFT);
col2.setText("Coloumn 2");
col2.setWidth(80);
TableItem item1 = new TableItem(table,0);
item1.setText(new String[]{"a","b"});
TableItem item2 = new TableItem(table,0);
item2.setText(new String[]{"a","b"});
table.setHeaderVisible(true);
table.setLinesVisible(true);
</td></tr></table>8.3.2. Combo(组合框)窗口组件
Combo窗口组件允许用户从值列表中选择一个值或者随意输入一个新值。组合框(combo)类似于列表组件,却使用了有限的空间。
虽然组合框是组合性质的,但是对它增加子元素是没有意义的。它的元素必须是String类型。一元素可以使用Combo类中定义的add(String element)方法来添加到组合框中。
图 12. 不同样式的组合框
下边的SWT常量可以用于Combo窗口组件:
<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 360.75pt; BORDER-BOTTOM: silver 1pt outset; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-border-alt: outset silver .75pt" cellspacing="0" cellpadding="0" width="481" border="1"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt inset; WIDTH: 360.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" width="481" colspan="2">Table 8. SWT Combo style bit constants
</td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 79.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="106">SWT.DROP_DOWN
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 281.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="375">下拉式组合框
</td></tr><tr style="mso-yfti-irow: 2"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 79.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="106">SWT.READ_ONLY
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 281.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="375">只读组合框
</td></tr><tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 79.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="106">SWT.SIMPLE
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 281.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="375">简单的组合框(非下拉式组合框)。如图11所示
</td></tr></table>下边的例子说明了Combo组件的使用:
<table class="MsoNormalTable" style="WIDTH: 360pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="480" border="0"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 360pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="480">Source 9. Combo example
</td></tr><tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #eeeeee; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 360pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="480">final Combo combo =
new Combo(shell,SWT.DROP_DOWN);
for (int i = 1; i < 11; i++)
{
combo.add(i+".) element ");
}
combo.setText("Text");
combo.addSelectionListener(
new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
System.out.println("Selection:"+
combo.getText());
}
}
);
</td></tr></table>8.3.3. Tree窗口组件
Tree窗口组件描绘了树中项的可选择层次结构。虽然Tree类是组合的,但是不能对它增加组合类对象。Tree类的子项必须是ThreeItem类型。
图 13. 不同样式的Tree窗口组件
下表是Tree组件常量的列表。
<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 306.75pt; BORDER-BOTTOM: silver 1pt outset; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-border-alt: outset silver .75pt" cellspacing="0" cellpadding="0" width="409" border="1"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt inset; WIDTH: 306.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" width="409" colspan="2">表 9. SWT Tree style bit 常量
</td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 71.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="95">SWT.SINGLE
SWT.MULTI
允许单选或者多选
</td></tr><tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 71.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="95">SWT.CHECK
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 235.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="314">在每个节点的开始显示一个选择框。
</td></tr></table>下边是一个简单的Tree组件例子。
<table class="MsoNormalTable" style="WIDTH: 315pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="420" border="0"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 315pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="420">源代码 10. Tree例子
</td></tr><tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #eeeeee; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 315pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="420">final Tree tree =
new Tree(shell,SWT.SINGLE);
for (int i = 1; i < 11; i++)
{
final TreeItem item1 =
new TreeItem(tree,SWT.NULL);
item1.setText("node "+i);
for (int j = 1; j < 6; j++)
{
final TreeItem item11 =
new TreeItem(item1,SWT.NULL);
item11.setText("node "+i+"."+j);
}
}
tree.addSelectionListener(
new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
System.out.println("Selection:"+
tree.getSelection()[0]);
}
}
);
</td></tr></table>8.3.4. TabFolder
TabFolder组件允许用户从一些页面中选择一页。虽然它是组合的,但是它不能增加其他的组合窗口组件。加到TabFolder的组件必须是TabItem类型。Tab的内容可以使用TabItem的setControl(Control control) 方法来设置。
图 14. TabFolder窗口组件
一个简单的TabFolder例子:
源代码 11. TabFolder例子
</td></tr><tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #eeeeee; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 333pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="444">final TabFolder tabFolder =
new TabFolder( shell, SWT.BORDER);
for (int i=1; i<5; i++)
{
// create a TabItem
TabItem item =
new TabItem( tabFolder, SWT.NULL);
item.setText( "TabItem " + i);
// create a control
Label label =
new Label( tabFolder, SWT.BORDER);
label.setText( "Page " + i);
// add a control to the TabItem
item.setControl( label );
}
</td></tr></table>8.3.5. CoolBar窗口组件
CoolBar窗口组件提供了一个可以在动态摆放空间上增加项的区域。你可以增加一个或多个ToolBar组件到CoolBar上。一个CoolBar可一容纳一个或多个CoolItems。虽然是一个组合窗口组件,但是不能把其他组合类加到它上。CoolBar的子元素必须是CoolItem类型。
图 15. Coolbar窗口组件
CoolBar窗口组件使用的例子:
<table class="MsoNormalTable" style="WIDTH: 360pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="480" border="0"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 360pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="480">Source 12. CoolBar example
</td></tr><tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #eeeeee; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 360pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="480">CoolBar coolBar =
new CoolBar(shell, SWT.BORDER);
coolBar.setLayoutData(
new FillLayout());
// create a tool bar which it
// the control of the coolItem
for (int k = 1; k <3; k++)
{
ToolBar toolBar =
new ToolBar(coolBar, SWT.FLAT);
for (int i = 1; i < 5; i++)
{
ToolItem item =
new ToolItem(toolBar, SWT.NULL);
item.setText("B"+k+"."+i);
}
// Add a coolItem to a coolBar
CoolItem coolItem =
new CoolItem(coolBar, SWT.NULL);
// set the control of the coolItem
coolItem.setControl(toolBar);
// You have to specify the size
Point size =
toolBar.computeSize( SWT.DEFAULT,
SWT.DEFAULT);
Point coolSize =
coolItem.computeSize (size.x, size.y);
coolItem.setSize(coolSize);
}
</td></tr></table>8.4. 具有子项控件的概述
有些控件接受子组件作为子项。如,一个组合组件接受组合组件。有些组件只需要item(项)这样的组件如表10所列:
<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 323.75pt; BORDER-BOTTOM: silver 1pt outset; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-border-alt: outset silver .75pt" cellspacing="0" cellpadding="0" width="432" border="1"><tr style="mso-yfti-irow: 0"><td style="BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: navy; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt inset; WIDTH: 323.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" width="432" colspan="3">表 10. 有项的组件
</td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: silver; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; mso-border-alt: inset silver .75pt" valign="top" width="74">窗口组件
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: silver; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; mso-border-alt: inset silver .75pt" valign="top" width="90">项
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; BACKGROUND: silver; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; mso-border-alt: inset silver .75pt" valign="top" width="268">描述
</td></tr><tr style="mso-yfti-irow: 2"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">CoolBar
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">CoolItem
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="268">项是可选择的,动态的摆放在CoolBar的区域上。
</td></tr><tr style="mso-yfti-irow: 3"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">Menu
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">MenuItem
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="268">项是菜单下的选择。
</td></tr><tr style="mso-yfti-irow: 4"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">TabFolder
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">TabItem
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="268">项是TabFolder中的Tab
</td></tr><tr style="mso-yfti-irow: 5"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">Table
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">TableItem
TableColumn
项是表中的行。
</td></tr><tr style="mso-yfti-irow: 6"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">ToolBar
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">ToolItem
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="268">项是工具栏上的按钮。
</td></tr><tr style="mso-yfti-irow: 7; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 55.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="74">Tree
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 67.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="90">TreeItem
</td><td style="BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0cm; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt inset; WIDTH: 200.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" valign="top" width="268">项是树上的节点。
</td></tr></table>结论
SWT是Eclipse用户接口的核心部分。Eclipse平台基于SWT库。要扩展你的SWT知识,你可以下载SWT网站上的SWT例子。