乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SWT事件

       @IT小小鳥@ 2012-01-13

      SWT事件

      Translated By xiaotaoliang 04.12

      一旦我們創(chuàng)建了display對(duì)象和一些部件,啟動(dòng)了應(yīng)用程序的消息循環(huán),真正的工作從哪里開始發(fā)生呢?答案是每當(dāng)有一個(gè)事件從事件隊(duì)列中被讀取并分發(fā)給某個(gè)部件的時(shí)候。實(shí)際上大部分的應(yīng)用程序邏輯被實(shí)現(xiàn)為對(duì)用戶事件的響應(yīng)。
      基本的模式是:為所創(chuàng)建的部件附加一個(gè)監(jiān)聽器,當(dāng)相應(yīng)的事件發(fā)生時(shí),監(jiān)聽器的代碼就會(huì)被執(zhí)行。一個(gè)簡(jiǎn)單的例子被實(shí)現(xiàn)于org.eclipse.swt.examples.helloworld.HelloWorld3:
         Display display = new Display ();
         Shell shell = new Shell (display);
         Label label = new Label (shell, SWT.CENTER);
         ...
         shell.addControlListener (new ControlAdapter () {
            public void controlResized (ControlEvent e) {
               label.setBounds (shell.getClientArea ());
            }
         });
      對(duì)于每一種監(jiān)聽器,都對(duì)應(yīng)有一個(gè)接口定義這種監(jiān)聽器(XyzListener),一個(gè)類提供事件信息(XyzEvent),還有一個(gè)應(yīng)用程序接口方法負(fù)責(zé)添加監(jiān)聽器(addXyzListener)。如果一個(gè)監(jiān)聽器接口中定義了不只一個(gè)方法,那么相應(yīng)地會(huì)提供一個(gè)適配器(XyzAdapter),它實(shí)現(xiàn)了監(jiān)聽器接口并提供一些空方法(你可以覆蓋之)。所有的事件類,監(jiān)聽器類以及適配器類都定義在包org.eclipse.swt.events.里面。
      以下表格總結(jié)了有效的事件以及對(duì)應(yīng)的支持事件的部件:
      事件類型
      描述
      部件
      Arm
      當(dāng)部件處于高亮(將被選擇)時(shí)發(fā)生,如菜單項(xiàng)。
      MenuItem
      Control
      當(dāng)控件被移動(dòng)或改變大小時(shí)發(fā)生
      ControlTableColumn,Tracker
      Dispose
      當(dāng)部件被銷毀時(shí)發(fā)生,無(wú)論銷毀是由于用戶操作還是程序操作
      Widget
      Focus
      當(dāng)部件獲得或者失去焦點(diǎn)時(shí)發(fā)生
      Control
      Help
      當(dāng)用戶請(qǐng)求對(duì)部件的幫助說(shuō)明時(shí)發(fā)生,比如按下F1
      ControlMenuMenuItem
      Key
      當(dāng)控件擁有鍵盤焦點(diǎn),用戶壓下或釋放按鍵時(shí)發(fā)生。
      Control
      Menu
      當(dāng)菜單被隱藏或顯示時(shí)發(fā)生
      Menu
      Modify
      當(dāng)部件的文本內(nèi)容被改變時(shí)發(fā)生
      CComboComboText,StyledText
      Mouse
      當(dāng)用戶在控件上壓下、釋放或雙擊鼠標(biāo)時(shí)發(fā)生
      Control
      MouseMove
      當(dāng)用戶把鼠標(biāo)從控件上移過(guò)時(shí)發(fā)生
      Control
      MouseTrack
      當(dāng)鼠標(biāo)進(jìn)入、退出或在控件上懸浮時(shí)發(fā)生
      Control
      Paint
      當(dāng)控件需要被重繪時(shí)發(fā)生
      Control
      Selection
      當(dāng)用戶選擇了控件中的一項(xiàng)時(shí)發(fā)生
      ButtonCComboCombo,CoolItemCTabFolderList,MenuItemSashScale,ScrollBarSlider,StyledTextTabFolder,TableTable CursorTableColumnTableTree,TextToolItemTree
      Shell
      當(dāng)Shell窗口被最小化、最大化、激活、不激活或被關(guān)閉時(shí)發(fā)生。
      Shell
      Traverse
      當(dāng)用戶使用鍵盤按鍵訪問控件時(shí)發(fā)生
      Control
      Tree
      當(dāng)用戶展開或收縮樹時(shí)發(fā)生
      TreeTableTree
      Verify
      當(dāng)部件的文本內(nèi)容將要發(fā)生改變的時(shí)候發(fā)生,給了應(yīng)用程序一個(gè)機(jī)會(huì)去修改或防止修改部件的文本內(nèi)容
      TextStyledText

      無(wú)類型事件

      以上描述的有類型事件系統(tǒng)實(shí)際上是由低級(jí)別的,無(wú)類型的部件事件機(jī)制實(shí)現(xiàn)的。這種機(jī)制不打算讓應(yīng)用程序使用,不過(guò)你會(huì)看到SWT的實(shí)現(xiàn)中使用了這種機(jī)制,很多工作臺(tái)向?qū)ы?yè)的實(shí)現(xiàn)也使用了這種機(jī)制。
      無(wú)類型事件機(jī)制依賴一個(gè)常量去標(biāo)識(shí)事件類型并且為此定義了一個(gè)通用的監(jiān)聽器。這允許監(jiān)聽器實(shí)現(xiàn)“case樣式”的監(jiān)聽模式。在以下的代碼片斷,我們定義一個(gè)通用的事件句柄并把若干監(jiān)聽器附加到Shell窗口。
         Shell shell = new Shell ();
         Listener listener = new Listener () {
            public void handleEvent (Event e) {
               switch (e.type) {
                  case SWT.Resize:
                     System.out.println ("Resize received");
                     break;
                  case SWT.Paint:
                     System.out.println ("Paint received");
                     break;
                  default:
                     System.out.println ("Unknown event received");
               }
            }
         };
         shell.addListener (SWT.Resize, listener);
         shell.addListener (SWT.Paint, listener);

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多