关于SWT中的Combo类和List类

时间:2022-06-14 17:21:33

Combo类的谱系图:

关于SWT中的Combo类和List类

一个Combo类的实例:

Combo1.java

 public class Combo1 {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
// ---------创建窗口中的其他界面组件-------------
final Combo combo = new Combo(shell, SWT.READ_ONLY); // 定义一个只读的下拉框
combo.setBounds(16, 11, 100, 25); // 设值按钮
Button setButton = new Button(shell, SWT.NONE);
setButton.setBounds(17, 65, 100, 25);
setButton.setText("设值");
setButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
combo.removeAll(); // 先清空combo,以防多次按下“设值”按钮时出现BUG
// combo.setItems(new String[] { "语文", "数学", "政治"});
combo.add("语文"); // 加入Combo显示值
combo.add("数学");
combo.add("政治");
combo.setData("语文", "YW");// 设置显示值的代表值
combo.setData("数学", "SX");
combo.setData("政治", "ZZ");
combo.select(1); // 设置第一项为当前项
// combo.setText("数学");
}
}); // 取值按钮
Button getButton = new Button(shell, SWT.NONE);
getButton.setBounds(136, 66, 100, 25);
getButton.setText("取值");
getButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String str = combo.getText();// 取得显示值
String data = (String) combo.getData(str);// 取得代表值
MessageDialog.openInformation(null, null, str + data);
}
});
// -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}

关于SWT中的Combo类和List类

关于SWT中的Combo类和List类

关于SWT中的Combo类和List类

关于SWT中的Combo类和List类

Combo类的式样列表:

关于SWT中的Combo类和List类

常用方法:

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的谱系图:

关于SWT中的Combo类和List类

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

List1.java

 public class List1 {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
// ---------创建窗口中的其他界面组件-------------
final List list = new List(shell, SWT.BORDER | SWT.MULTI);
list.setBounds(16, 11, 100, 45); // 设值按钮
Button setButton = new Button(shell, SWT.NONE);
setButton.setBounds(17, 65, 100, 25);
setButton.setText("设值");
setButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
list.removeAll(); // 先清空combo,以防多次按下“设值”按钮时出现BUG
list.add("语文"); // 加入Combo显示值
list.add("数学");
list.add("政治");
list.setData("语文", "YW");// 设置显示值的代表值
list.setData("数学", "SX");
list.setData("政治", "ZZ");
list.select(new int[] { 0, 2 }); // 设置第一、三项为选择项
}
}); // 取值按钮
Button getButton = new Button(shell, SWT.NONE);
getButton.setBounds(136, 66, 100, 25);
getButton.setText("取值");
getButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
StringBuilder bud = new StringBuilder();
for (String s : list.getSelection())// getSelection返回所有选择项组成的String数组
bud.append(s).append(list.getData(s)).append(", ");
MessageDialog.openInformation(null, null, bud.toString());
}
});
// -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}

关于SWT中的Combo类和List类

关于SWT中的Combo类和List类

List类中的式样

关于SWT中的Combo类和List类