久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SWT事件

 @IT小小鳥@ 2012-01-13

SWT事件

Translated By xiaotaoliang 04.12

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

無類型事件

以上描述的有類型事件系統(tǒng)實際上是由低級別的,,無類型的部件事件機制實現(xiàn)的,。這種機制不打算讓應(yīng)用程序使用,不過你會看到SWT的實現(xiàn)中使用了這種機制,,很多工作臺向?qū)ы摰膶崿F(xiàn)也使用了這種機制。
無類型事件機制依賴一個常量去標識事件類型并且為此定義了一個通用的監(jiān)聽器,。這允許監(jiān)聽器實現(xiàn)“case樣式”的監(jiān)聽模式,。在以下的代碼片斷,我們定義一個通用的事件句柄并把若干監(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);

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多