在ECLIPSE中開發JAVA程序,當我們打開一個JAVA類時,ECLIPSE會打開一個JDT的JAVA EDITOR來顯示這個類.當把鼠標移到某一個JAVA類型時,會出現一個tooltip的提示信息.這時我們可以按F2來把焦點設定在這個提示信息窗口上,這樣就不會因為一移動鼠標這個提示窗口就消失了.
tooltip大家都會加,但怎么把F2這個功能也加上去呢?
其實很容易,下面我用簡單的代碼介紹一下:
比如說我們要在Table上加上tooltip,當鼠標移到某一行時,顯示該行的提示信息.
我們可以這么做:
TableViewer viewer
Table table = viewer.getTable();
TooltipListener tooltipListener = new TooltipListener(viewer);
table.addListener(SWT.KeyDown,tooltipListener);
table.addListener(SWT.MouseHover,tooltipListener);
這里的TooltipListener類就是一個監聽器,來監聽系統的兩個事件:一個是鍵盤敲下,一個是鼠標停留.
private class TooltipListener implements Listener {
private Shell tipshell;
private Text msg;
private TableViewer viewer;
private Shell shell;
private Display display;
public TooltipListener(TableViewer viewer) {
this.viewer = viewer;
shell = this.viewer .getControl().getShell();
display = shell.getDisplay();
}
public void handleEvent(Event event) {
if(event.type == SWT.KeyDown){
if(event.keyCode == SWT.F2){
tipshell.forceFocus();
tooltiptext.setFacus();
}
}else if(event.type == SWT.MouseHover){
TableItem item = viewer.getTable().getItem(new Point(event.x, event.y));
tipShell = new Shell(shell, SWT.ON_TOP | SWT.TOOL);
tipShell.setLayout(new FillLayout());
msg = new Text(tipShell, SWT.WRAP);
msg.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
msg.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
msg.setText("hello!nihao");
tipShell.setVisible(true);
}
}
break;
}
}
當鼠標停留,這個監聽器監聽到了停留事件就打開一個tooltip:hello!nihao 這時如果按下F2,這個監聽器就監聽到,馬上把鼠標焦點定位到tooltip上.
^_^,就這么簡單!其實就是兩個語句:tipshell.forceFocus();tooltiptext.setFacus();
希望對大家有幫助.
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢】
tooltip + F2
2010-01-14 23:00:28 作者: 來源: