站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题使用Eclipse进行SWT编程(4)

使用Eclipse进行SWT编程(4)

摘要: 使用Eclipse进行SWT编程(4)

8.2.2. 滑块(Slider, 标尺(Scale)和进度条(ProgressBar)窗口组件

标尺(Scale)表示一段可选择的连续值。范围可以用Scale类的setMinimum() 和setMaximum()方法设定。并可以使用getSelection()方法得到所选择的值。标尺在一次只有一个选择的值。也就是说,没有多选的可能。

<formulas></formulas>

6. 包含在一起的滑块和标尺

根据传递给构造函数的参数值的不同,我们可以创建不同的滑块和标尺。滑块和标尺常量如表5所示:

<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 288.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="385" 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: 288.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" width="385" colspan="2">

5. SWT滑块和标尺的样式常量

</td></tr><tr style="mso-yfti-irow: 1; 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: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="114">

SWT.HORIZONTAL
SWT.VERTICAL

</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: 203.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="271">

显示水平或者垂直组件

</td></tr></table>

随意地,你可以使用SWT.BORDER常量来在标尺周围创建边框。这个常量对滑块没有作用。

<table class="MsoNormalTable" style="WIDTH: 414pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="552" 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: 414pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="552">

Source 4. Slider widget 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: 414pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="552">

final Slider slider = new Slider(shell,SWT.VERTICAL);

slider.setMinimum(0);

slider.setMaximum(100);

slider.setIncrement(5);

slider.setPageIncrement(10);

slider.setSelection(25);

slider.addSelectionListener(

new SelectionAdapter()

{

public void widgetSelected(SelectionEvent e)

{

System.out.println("Selection:"+ slider.getSelection());

}

}

);

</td></tr></table>

进度条组件类似于滑块和标尺组件,但是它不能被选择。它用于显示一个任务的进度。你可以对进度条组件使用SWT.SMOOTH and SWT.INTERMINATE常量。

8.2.3. 文本窗口组件

一个文本窗口组件可以用于显示或者编辑文本。另外,你可以使用StyledText窗口组件来用不同的字体和颜色显示文本。StyledText窗口组件允许设置前景、背景色和指定范围文本块的字体。

7. Text窗口组件

我们可以使用6所列的常量来创建Text窗口组件。因此,SWT.H_SCROLL和SWT.V_SCROLL常量可用于对Text窗口组件增加滚动条。

<table class="MsoNormalTable" style="BORDER-RIGHT: silver 1pt outset; BORDER-TOP: silver 1pt outset; BORDER-LEFT: silver 1pt outset; WIDTH: 225pt; 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="300" 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; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt" colspan="2">

6. SWT Text 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: 31%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="31%">

SWT.MULTI
SWT.SINGLE

</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%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="67%">

显示单行还是多行窗口组件

</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: 31%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="31%">

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: 67%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="67%">

创建只读的组件

</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: 31%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="31%">

SWT.WRAP

</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%; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt" width="67%">

文本自动换行

</td></tr></table>

源代码 5是一个简单的使用Text组件的例子.

<table class="MsoNormalTable" style="WIDTH: 297pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="396" 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: 297pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="396">

Source 5. Text widget 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: 297pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="396">

Text text =

new Text(shell, SWT.MULTI|SWT.WRAP);

</td></tr></table>

8.2.4. 列表(List)窗口组件

List窗口组件可用于显示可选择的字符串列表。在选择的情况下,List对象会发送事件通告给它的listeners。这种类型的选择可以是单选,也可以是多选。选择的类型是由SWT.SINGLE和SWT.MULTI常量决定的。List窗口组件是可滚动的组件。因此SWT.H_SCROLL和SWT.V_SCROLL常量可用于给Text窗口组件增加滚动条。

8. List 窗口组件

下边的代码片断显示了一个简单的List窗口组件。

<table class="MsoNormalTable" style="WIDTH: 300.85pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="401" 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: 300.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="401">

Source 6. List 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: 300.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="401">

final List list = new List(shell,SWT.MULTI);

for (int i = 1; i < 11; i++)

{

list.add(i+".)www.korayguclu.de");

}

list.addSelectionListener(

new SelectionAdapter()

{

public void widgetSelected(SelectionEvent e)

{

List list = (List) e.getSource();

String[] str = list.getSelection();

for (int i = 0; i < str.length; i++)

{

System.out.println("Selection: "+str[i]);

}

}

}

);

</td></tr></table>

8.2.5. 窗框组件

窗框组件可用于在可改变的区域里显示组合窗口组件。下图就是一个窗框组件例子。

9. 窗框组件

下边是一个基本的窗框组件例子:

<table class="MsoNormalTable" style="WIDTH: 270pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" width="360" 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: 270pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="360">

Source 7. Sash 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: 270pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="360">

Button button = new Button(shell,SWT.PUSH);

Sash sash = new Sash(shell, SWT.VERTICAL);

Button button1 = new Button(shell,SWT.PUSH);

</td></tr></table>



↑返回目录
前一篇: 使用Eclipse进行SWT编程(5)
后一篇: 使用Eclipse进行SWT编程(3)