在ECLIPSE中開(kāi)發(fā)JAVA程序,當(dāng)我們打開(kāi)一個(gè)JAVA類時(shí),ECLIPSE會(huì)打開(kāi)一個(gè)JDT的JAVA EDITOR來(lái)顯示這個(gè)類.當(dāng)把鼠標(biāo)移到某一個(gè)JAVA類型時(shí),會(huì)出現(xiàn)一個(gè)tooltip的提示信息.這時(shí)我們可以按F2來(lái)把焦點(diǎn)設(shè)定在這個(gè)提示信息窗口上,這樣就不會(huì)因?yàn)橐灰苿?dòng)鼠標(biāo)這個(gè)提示窗口就消失了.
tooltip大家都會(huì)加,但怎么把F2這個(gè)功能也加上去呢?
其實(shí)很容易,下面我用簡(jiǎn)單的代碼介紹一下:
比如說(shuō)我們要在Table上加上tooltip,當(dāng)鼠標(biāo)移到某一行時(shí),顯示該行的提示信息.
我們可以這么做:
TableViewer viewer
Table table = viewer.getTable();
TooltipListener tooltipListener = new TooltipListener(viewer);
table.addListener(SWT.KeyDown,tooltipListener);
table.addListener(SWT.MouseHover,tooltipListener);
這里的TooltipListener類就是一個(gè)監(jiān)聽(tīng)器,來(lái)監(jiān)聽(tīng)系統(tǒng)的兩個(gè)事件:一個(gè)是鍵盤(pán)敲下,一個(gè)是鼠標(biāo)停留.
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;
}
}
當(dāng)鼠標(biāo)停留,這個(gè)監(jiān)聽(tīng)器監(jiān)聽(tīng)到了停留事件就打開(kāi)一個(gè)tooltip:hello!nihao 這時(shí)如果按下F2,這個(gè)監(jiān)聽(tīng)器就監(jiān)聽(tīng)到,馬上把鼠標(biāo)焦點(diǎn)定位到tooltip上.
^_^,就這么簡(jiǎn)單!其實(shí)就是兩個(gè)語(yǔ)句:tipshell.forceFocus();tooltiptext.setFacus();
希望對(duì)大家有幫助.
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢】
tooltip + F2
2010-01-14 23:00:28 作者: 來(lái)源:
相關(guān)熱詞搜索:

熱門(mén)精品專業(yè)

