Eclipse RCP讀書筆記 四

2021-08-29 12:56:56 字數 1326 閱讀 9529

本節主要是書中第四章,即swt和jface相關的內容

關於swt和jface是什麼就不多做介紹了。配置swt開發環境是需要注意的是dll的位置

swt程式的基本結構如下

display display 

=new

display();

shell shell 

=new

shell(display);

// 頁面相關的**

shell.open();

while(!

shell.isdisposed()) 

}display.dispose();

需要理解display物件和shell物件。目前我只對這兩個物件有初步的了解。其中,有兩個沒有解決的問題是:

1. shell物件構造時,傳不傳入display物件有什麼區別?

2. display物件構造時,呼叫建構函式和靜態方法有什麼區別

比較重要的是布局管理器,還有常用元件的使用方法。

swt的事件處理機制在本書的該章沒有詳細介紹。不過有簡單的涉及,重要的是事件的listener。其中匿名內部類的使用也應該有所了解。(包括內部類等)

swt/jface開發入門指南(四)  中介紹了swt的時間處理機制

其實swt中處理事件非常簡單,對應於各種事件都有相應的listener類,如果一種事件叫做xyz,那麼對應的listener類就是xyzlistener。比如對應於滑鼠事件的有mouselistener,對應於鍵盤事件的就是keylistener。而在每種widget中,對於它可以處理的事件都有addxyzlistener方法,只要把對應的listener例項作為引數傳給它就可以了。

另外,在一些情況下adapter也很有意義。

有時候我們可能會感覺這樣仍然不夠簡單,比如我只對selectionlistener中的widgetselected()方法感興趣,但是為了能夠通過編譯器的編譯,我卻不得不寫乙個空白的widgetdefaultselected()方法(因為selectionlistener是乙個介面,你必須實現它所有的方法)。

幸運的是,swt幫我們解決了這個問題,途徑就是使用adapter。在swt中,對應於乙個xyzlistener都有乙個xyzadapter,adapter都是抽象類並且實現了對應的listener介面,它為對應listener介面中的每個方法都定義了乙個預設實現(基本上就是什麼都不做),我們在使用時候只需要override掉自己感興趣的方法就可以了。

結合上一小節中的**,如果使用selectionadapter代替selectionlistener

總之,上面介紹的文章有助於了解swt中的事件處理。

讀書筆記四

軟體需求 尋找需求 1.獲取和引導需求 elicitation 軟體團隊需要找到軟體的利益相關者,了解和挖掘他們對軟體的需求,引導他們表達出對軟體的需求。2.分析和定義需求 analysis specification 這是指對從各個方面獲取的需求進行規整,定義需求的內涵,從各個角度將需求量化 需求...

C Primer讀書筆記(四)

vector.resize與vector.reserve的區別 reserve是容器預留空間,但並不真正建立元素物件,在建立物件之前,不能引用容器內的元素,因此當加入新的元素時,需要用push back insert 函式。resize是改變容器的大小,並且建立物件,因此,呼叫這個函式之後,就可以引...

《Effective C 》讀書筆記(四)

模板以前只是學習的時候寫過一些例子,並沒有真正用過。本人對模板還處於超級小白的狀態,基本看不懂這章,所以就先瀏覽一遍吧,等今後有經驗之後,再回頭看一下模板相關的內容。目前打算下一步學一下stl。a classes和templates都支援介面和多型。b 對於classses中的介面是顯式的,以函式簽...