package demotest;
import org.eclipse.swt.*;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.*;
/**
*
* @author mositure
* 学习List列表框组件
*/
public class ListSample {
/**
* @param args
*/
public static void main(String[] args) {
final Label label;
//创建一个display对象
Display display = new Display();
//shell是程序的主窗体
Shell shell=new Shell(display);
//设置窗体大小
shell.setSize(400, 350);
//设置主窗体的标题
shell.setText("List组件");
//基本样式
// SWT.NONE:默认式样。
// SWT.V_SCROLL:带垂直滚动条。
// SWT.MULTI:允许复选。
// SWT.SINGLE:允许单选。
//常用方法
// getSelection() 返回所有选项组成的String数组
//声明一个可复选、带垂直滚动条、有边框的列表框。
final List list=new List(shell,SWT.MULTI|SWT.V_SCROLL|SWT.BORDER);
list.setBounds(10,10,100,100);
for(int i=1;i<=10;i++){
list.add("第"+i+"个"); //将选项循环加入到列表框中
}
//默认选中
list.select(0);
label=new Label(shell,SWT.WRAP); //创建标签,可自动换行
label.setBounds(10,60,100,60);
label.setText("您选择的是:");
label.setVisible(true);
list.addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
String redio = "";
//选中字段为数组
for(int i=0;i<list.getSelection().length;i++){
redio = list.getSelection()[i]+"/";
}
label.setText(redio);
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
String redio = "";
//选中字段为数组
for(int i=0;i<list.getSelection().length;i++){
redio = list.getSelection()[i]+"/";
}
label.setText(redio);
}
});
// list.addSelectionListener(new SelectionListener() {
//
// @Override
// public void widgetSelected(SelectionEvent e) {
// String redio = "";
// //选中字段为数组
// for(int i=0;i<list.getSelection().length;i++){
// redio = list.getSelection()[i]+"/";
// }
// label.setText(redio);
// }
//
// @Override
// public void widgetDefaultSelected(SelectionEvent e) {
// String redio = "";
// //选中字段为数组
// for(int i=0;i<list.getSelection().length;i++){
// redio = list.getSelection()[i]+"/";
// }
// label.setText(redio);
// }
// });
// list.addPaintListener(new PaintListener() {
// @Override
// public void paintControl(PaintEvent e) {
// String redio = "";
// //选中字段为数组
// for(int i=0;i<list.getSelection().length;i++){
// redio = list.getSelection()[i]+"/";
// }
// label.setText(redio);
// }
// });
//打开主窗体
shell.open();
//如果主窗体没有关闭
while(!shell.isDisposed()){
//如果display不忙
if(!display.readAndDispatch()){
//休眠
display.sleep();
}
}
//销毁display
display.dispose();
}
}