关于SWT中的Combo类和List类

Combo类的谱系图:

一个Combo类的实例:

 Combo1.java

 1 public class Combo1 {
 2     public static void main(String[] args) {
 3         final Display display = Display.getDefault();
 4         final Shell shell = new Shell();
 5         shell.setSize(327, 253);
 6         // ---------创建窗口中的其他界面组件-------------
 7         final Combo combo = new Combo(shell, SWT.READ_ONLY); // 定义一个只读的下拉框
 8         combo.setBounds(16, 11, 100, 25);
 9 
10         // 设值按钮
11         Button setButton = new Button(shell, SWT.NONE);
12         setButton.setBounds(17, 65, 100, 25);
13         setButton.setText("设值");
14         setButton.addSelectionListener(new SelectionAdapter() {
15             public void widgetSelected(SelectionEvent e) {
16                 combo.removeAll(); // 先清空combo,以防多次按下“设值”按钮时出现BUG
17                 // combo.setItems(new String[] { "语文", "数学", "政治"});
18                 combo.add("语文"); // 加入Combo显示值
19                 combo.add("数学");
20                 combo.add("政治");
21                 combo.setData("语文", "YW");// 设置显示值的代表值
22                 combo.setData("数学", "SX");
23                 combo.setData("政治", "ZZ");
24                 combo.select(1); // 设置第一项为当前项
25 //                combo.setText("数学");
26             }
27         });
28 
29         // 取值按钮
30         Button getButton = new Button(shell, SWT.NONE);
31         getButton.setBounds(136, 66, 100, 25);
32         getButton.setText("取值");
33         getButton.addSelectionListener(new SelectionAdapter() {
34             public void widgetSelected(SelectionEvent e) {
35                 String str = combo.getText();// 取得显示值
36                 String data = (String) combo.getData(str);// 取得代表值
37                 MessageDialog.openInformation(null, null, str + data);
38             }
39         });
40         // -----------------END------------------------
41         shell.layout();
42         shell.open();
43         while (!shell.isDisposed()) {
44             if (!display.readAndDispatch())
45                 display.sleep();
46         }
47         display.dispose();
48     }
49 }

 

Combo类的式样列表:

常用方法:

Combo的常用方法如下:

add(String string)

说明:在Combo中增加一项

例子:combo.add("数学")

add(String string,int index)

说明:在Combo中插入一项

例子:combo.add("生物",3),在第3项后面插入一项"生物"

setItems(String[] items)

说明:将数组中的各项一次加入到Combo中,相当于执行了多次的add方法.

例子:combo.setItems(new String[]{"语文","数学","政治"})

select(int index)

说明:将Combo的第index+1项设置成当前选择项

例子:combo.select(0);使用第一项为当前选择项

setText(String str)

说明:此方法和select(int index)用于设置当前选择项,str是下拉框中的某一项.

例子:combo.setText("语文");将下拉框的"语文"项设置成为当前选择项.

deselectAll()

说明:使Combo的当前选择项为空,即Combo没有选择任何一项.

 

 

List的谱系图:

List的用法与Combo基本是一样的.Combo的两个雷子只要将Text的定义部分改为List的定义语句,再稍微修改,就可以称为List类的例子.

List1.java

 1 public class List1 {
 2     public static void main(String[] args) {
 3         final Display display = Display.getDefault();
 4         final Shell shell = new Shell();
 5         shell.setSize(327, 253);
 6         // ---------创建窗口中的其他界面组件-------------
 7         final List list = new List(shell, SWT.BORDER | SWT.MULTI);
 8         list.setBounds(16, 11, 100, 45);
 9 
10         // 设值按钮
11         Button setButton = new Button(shell, SWT.NONE);
12         setButton.setBounds(17, 65, 100, 25);
13         setButton.setText("设值");
14         setButton.addSelectionListener(new SelectionAdapter() {
15             public void widgetSelected(SelectionEvent e) {
16                 list.removeAll(); // 先清空combo,以防多次按下“设值”按钮时出现BUG
17                 list.add("语文"); // 加入Combo显示值
18                 list.add("数学");
19                 list.add("政治");
20                 list.setData("语文", "YW");// 设置显示值的代表值
21                 list.setData("数学", "SX");
22                 list.setData("政治", "ZZ");
23                 list.select(new int[] { 0, 2 }); // 设置第一、三项为选择项
24             }
25         });
26 
27         // 取值按钮
28         Button getButton = new Button(shell, SWT.NONE);
29         getButton.setBounds(136, 66, 100, 25);
30         getButton.setText("取值");
31         getButton.addSelectionListener(new SelectionAdapter() {
32             public void widgetSelected(SelectionEvent e) {
33                 StringBuilder bud = new StringBuilder();
34                 for (String s : list.getSelection())// getSelection返回所有选择项组成的String数组
35                     bud.append(s).append(list.getData(s)).append(", ");
36                 MessageDialog.openInformation(null, null, bud.toString());
37             }
38         });
39         // -----------------END------------------------
40         shell.layout();
41         shell.open();
42         while (!shell.isDisposed()) {
43             if (!display.readAndDispatch())
44                 display.sleep();
45         }
46         display.dispose();
47     }
48 }

 List类中的式样

posted @ 2014-12-13 22:49  SummerChill  阅读(1968)  评论(0编辑  收藏  举报