国产一区二区精品久久_蜜桃狠狠狠狠狠狠狠狠狠_午夜视频精品_激情都市一区二区

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > tooltip + F2

tooltip + F2
2010-01-14 23:00:28  作者:  來源:
    在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();
       希望對大家有幫助.
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢