组合框Combo实现左右按钮和上下按钮同样的方法
package com.layotech.www.study;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class ComboSample {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("组合框");
FillLayout layout = new FillLayout();
layout.marginWidth = 20;
layout.marginHeight = 20;
shell.setLayout(layout);
final Combo combo = new Combo(shell, SWT.SIMPLE);
String[] items = new String[4];
for(int i=0;i<items.length;i++){
items[i] = "选项" + i;
}
combo.setItems(items);
//注册键盘事件
combo.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event){
if(event.keyCode == SWT.ARROW_LEFT){
combo.select(combo.getSelectionIndex() - 1);
}else if(event.keyCode == SWT.ARROW_RIGHT){
combo.select(combo.getSelectionIndex() + 1);
}
}
});
shell.setSize(200,200);
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
}