问题:http://www.iteye.com/problems/51071
public class Combo_baidu {
private static Text text;
private static List list;
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(400, 300);
text = new Text(shell, SWT.BORDER);
text.setBounds(10, 10, 200, 20);
text.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if(e.keyCode == SWT.ARROW_UP || e.keyCode == SWT.ARROW_DOWN) {
int s = list.getSelectionIndex();
if(e.keyCode == SWT.ARROW_UP) {
s--;
} else {
s++;
}
if(s>=0 && s<list.getItemCount()) {
list.setSelection(s);
text.setText(list.getSelection()[0]);
text.setSelection(text.getCharCount());
}
}
}
});
list = new List(shell, SWT.BORDER | SWT.SINGLE);
for(int i=0; i<10; i++) {
list.add("The item "+i+" .");
}
list.setBounds(10, 30, 200, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
效果图:
问题的改进:
其实使用内容建议更好一些,还应该增加鼠标可以选择的功能。在书《Eclipse插件开发》P29有相应的提示。