类似百度和谷歌那样的自动提示组合框
  sAAkk3Vxfaa8 2023年11月02日 38 0


问题: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有相应的提示。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2oXoBYjmdHYq   2023年12月05日   39   0   0 sedsedMySQLMySQL
sAAkk3Vxfaa8