SWT事件模型概述與事件處理的常用寫法

1. 監聽器(Listener)    所謂監聽器,也就是接收事件發生的對象,負責處理事件到達後響應事件的代碼。監聽器對象是一個介面,要響應一個事件就要實現該介面中的方法。監聽器類的形式為XXXListener。例如,常用的監聽器有選擇監聽器(SelectionListener)、滑鼠監聽器(MouseListener)、鍵盤監聽器(KeyListener)等。   

SWT:使用靜態資源的注意事項

對於繼承自Resouce一類代表靜態資源的類(如Color,Font,Image等),遵循誰建立誰釋放的原則。但是,當有控制項在使用它時,是不能夠隨意釋放的。比如將某容器正使用image作為背景時,若將它釋放,則會造成背景為空白,顯示為灰白色。當然,靜態資源是一定要釋放的。可以為使用該資源的控制項註冊SWT.Disposed事件。在相應控制項釋放時dispose掉本地靜態資源。

滑鼠事件的各種屬性

    無論哪種類型的滑鼠監聽器,當滑鼠事件發生時,都是通過MouseEvent來傳遞事件發生時所攜帶的資訊的。◆ e.button:滑鼠按鍵的ID,從左至右依次為0,1,2。如果設定的滑鼠為左手使用,則從右向左排列。該屬性一般用的機會很少。◆ e.stateMask:在使用滑鼠時同步選取的輔助鍵,與鍵盤使用的輔助鍵相同。使用常量SWT.BUTTON_MASK可以判斷是否使用了輔助鍵。例如:if((e.stateMask & SWT.BUTTON_MASK)==0)

以第一個數組元素作為基準元素的快速排序

/*Subject:電腦演算法設計與分析Title:2.8.1 以第一個數組元素作為基準元素的快速排序Coder:HaoClass:計科0906Num:0304090614Date: Oct 2ed,2011 Programming Language:C++*/#include <iostream>using namespace std;//以第一個數組元素作為基準元素的快速排序主函數template <class Type>void QuickSort(Type a[]

GC繪圖的條件:可在任何實現Drawable介面的類上繪圖

用SWT繪製2D圖形用SWT繪圖通常由兩種方法,一種是藉助Graphics Context,另一種是利用Draw2D。然而Draw2D是一個基於SWT Composite的輕量級組件,於是在效率上,它無法體現出SWT的Native Code的速度優勢。故其雖然強大,但僅適用於繪圖工作不是系統瓶頸的應用程式。所以我在這裡只介紹第一種方法。GC:Graphics Context我們可以在任何實現了org.eclipse.swt.graphics.Drawable介面的類上繪製圖形,這包括一個控制項,

GC繪圖:開啟進階圖形子系統

模式開關方法 setAdvance 是系統進階圖形子系統的開關,當參數為 true 時,GC 將採用系統進階圖形子系統來進行繪圖(注意:某些作業系統只有一個繪圖子系統,從普通模式切換到進階繪圖模式將不起任何作用)。值得注意的是,進階圖形子系統將被自動的調用,如果方法 setAlpha(int alpha)、setAntialias(int antialias)

SWT:底層事件與進階事件的聯絡

在最底層,系統還是使用的底層事件(這裡的底層事件是指無類型事件,不指os底層事件,關於os事件與swt事件的轉化今後另外總結)。進階事件只不過是從名稱上更見名知義。 從原始碼上可以看到,進階事件實際上還是添加的底層事件。以下是Control中摘錄的原始碼片段。 org.eclipse.swt.ControlControlIstener事件public void addControlListener(ControlListener listener) { checkWidget (); if

GC繪圖:GC.drawString

當使用drawString時,定位字元和斷行符號符將不會被處理。在一個GC上繪製字元的時候,一個字串所佔用的大小取決於它的內容以及GC的字型。想要確定一個字串在被繪製之後所佔用的地區可以使用方法:GC.stringExtent(String text), 或 GC.textExtent(String text)。這兩個方法都返回一個Point類,這個Point的X和Y是渲染參數字串所需要的寬和高。文字大小與進階模式GC 提供了方法 textExtent(String string)

SWT Image簡介:構造方法

軟體開發人員可以利用 SWT 封裝的 Image, ImageData 等類來建立映像、儲存映像資料,也可以對儲存的圖像資料進行各種映像變換。下面就來介紹一下 Image 和 ImageData 這兩個在 SWT Images 中最重要的類。類 org.eclipse.swt.graphics.Image 被用來表示可以在裝置上顯示的圖片,可以用方法如GC.drawImage() 或 Button.setImage() 等來將它顯示出來。Image

滑鼠的左右鍵,滾輪在MouseEvent中代表的button值

滑鼠的左右鍵,滾輪在MouseEvent中代表的buttonMouseEvent.button左鍵:1中鍵(滾輪):2右鍵:3s.addMouseListener(new MouseAdapter( ) {        public void mouseDown(MouseEvent e) {           if(e.button==3)           {                    Label l = new Label(s, SWT.FLAT);           

SWT ImageData類簡介

類org.eclipse.swt.graphics.ImageData 中儲存了映像的像素資料資訊。 ImageData 是一個包含有關映像大小、調色盤、顏色值和透明度等資訊的類。我們可以對這些映像像素資料可以直接讀或者寫操作,這意味著可以通過直接讀取或者修改映像的資料,來設定或者取得映像中任何像素或者任何一組像素的顏色值。關於 ImageData ,我們還應當瞭解以下一些欄位:width 和 height 指定映像的寬和高。Depth 指定映像的色彩深度。可能的值為 1、2、4、8、16、24

SWT:看文檔瞭解GC

GC文檔說明下面一段話摘自GC類源碼Application code must explicitly invoke the <code>GC.dispose()</code>  * method to release the operating system resources managed by each instance * when those instances are no longer required. This is

RCP開發中幾個常用路徑的瞭解

一.Configuration Location//未匯出產品時,位於<工程目錄>/.metadata/.plugins/org.eclipse.pde.core/<plugin-id>.product/   //設定檔路徑,匯出產品後(RCP),位於程式根目錄下的configuration下面   File configDir = new

GC繪圖,映像拷貝

GC繪圖,映像拷貝方法原型:@param image the source image@param srcX the x coordinate in the source image to copy from@param srcY the y coordinate in the source image to copy from@param srcWidth the width in pixels to copy from the source@param srcHeight the

GC繪圖:使用gc.setXORMode的注意事項

開啟gc繪圖進階模式,gc.setXORMode效果失效另外,某些方法如gc.setAlpha , gc.setAntialias(SWT.ON) (消除鋸齒),會自動開啟繪圖進階模式。方法原型:/ * @deprecated this functionality is not supported on some platforms */public void setXORMode(boolean xor) { if (handle == 0)

GC繪圖:剪下(Clipping)

GC的剪下域是可見繪圖發生的部分。在預設情況下,一個GC是一個被構造的可視部分邊界。改變一個GC的剪下域可以讓我們構造出各種圖形效果。其中的一個例子是如果你想填充一個缺失了邊緣的矩形。一種方法是繪製多邊形矩形來組成所需要的圖形,另一種方法就是剪下GC,然後對其剪下部分進行填充。shell.addPaintListener(new PaintListener() {         public void paintControl(PaintEvent e) {            

GC繪圖:使用setRengion改變控制項的外觀為圓角

為相應的控制項添加SWT.Paint事件。eg:btnCommit.addPaintListener(new PaintListener(){    public void paintControl(PaintEvent e){    Rectangle recttmp = btnCommit.getBounds();   Point size = new Point(recttmp.width,recttmp.height);   final int[] pointArray = new

GC繪圖:漸層色

漸進色在繪圖過程中有著廣泛的應用,能夠使得圖形或者介面具有很好的視覺效果。它主要分為上下梯度漸進色和左右梯度漸進色兩種。GC就提供了方法fillGradientRectangle 來實現這一功能。方法原型:GC.fillGradientRectangle(int x, int y, int width. int height, vertical boolean);這個方法讓我們可以指定圖形在填充時所用的顏色可以從GC的前景色彩按梯度變化(漸層)到背景色。梯度既可以是橫向的也可以是縱向的。當其第5

GC繪圖:使用setRegion改變swt原生Text的外觀為圓角

首選需要將要改變外觀的Text的樣式設定為SWT.NONE,若設定為SWT.BORDER,則顯示比較怪。但設定為SWT.NONE時Text沒有Border了。顯示也比較怪,邊界顯示的是灰白色。放在背景色比較淡的容器中,幾乎看不到Text的邊界和範圍。有一種折衷的解決辦法,就是在放置Text的容器上為Text類比繪製一個邊界。eg:text.addPaintListener(new PaintListener(){            public void

資訊提示對話方塊

資訊氣球對應的類為:org.eclipse.jface.dialogs.MessageDialog。提供了一些靜態方法:(1)確認對話方塊public static boolean openConfirm(Shell parent,String title,String message); (2)錯誤資訊框public static void openError(Shell parent,String title,String message); (3)普通訊息框public static

總頁數: 61357 1 .... 21428 21429 21430 21431 21432 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.