问题: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有相应的提示。
本文展示了一个使用Eclipse SWT创建的简单应用示例,该应用包含文本输入框与列表组件,并通过键盘上下箭头实现了列表项的选择与显示。此外,提出了一些改进意见,如采用内容建议方式及增加鼠标选择功能。

被折叠的 条评论
为什么被折叠?



