成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

概述SWT采用AWT和Swing的一些優點

開發 后端
本文介紹SWT采用AWT和Swing的一些優點,包括介紹SWT對用戶操作的響應,比如鼠標或鍵盤事件,也是采用了AWT和Swing中的Observer模式。

SWT也采用AWT和Swing的構件的布局

我們最常用的圖形構件基本都被包括在*.widgets包中,比如Button,Combo,Text,Label,Sash,Table等等。其中兩個最重要的構件當數Shell和Composite。Shell相當于應用程序的主窗口框架,上面的例子代碼中就是應用Shell構件打開一個空窗口。 Composite相當于Swing中的Panel對象,充當著構件容器的角色,當我們想在一個窗口中加入一些構件時,最好到使用Composite作為其它構件的容器,然后再去*.layout包找出一種合適的布局方式。

SWT對構件的布局也采用了AWT和Swing中Layout和Layout Data結合的方式,在*.layout包中可以找到四種Layout和與它們相對應的布局結構對象(Layout Data)。在*.custom包中,包含了對一些基本圖形構件的擴展,比如其中的CLabel,就是對標準Label構件的擴展,上面可以同時加入文字和圖片,也可以加邊框。StyledText是Text構件的擴展,它提供了豐富的文本功能,比如對某段文字的背景色、前景色或字體的設置。在*.custom包中也可找到一個新的StackLayout布局方式。

SWT對用戶操作的響應,比如鼠標或鍵盤事件,也是采用了AWT和Swing中的Observer模式,在*.event包中可以找到事件監聽的Listener接口和相應的事件對象,例如常用的鼠標事件監聽接口 MouseListener,MouseMoveListener和MouseTrackListener,及對應的事件對象MouseEvent。

*.graphics包中可以找到針對圖片、光標、字體或繪圖的API。比如可通過Image類調用系統中不同類型的圖片文件。通過GC類實現對圖片、構件或顯示器的繪圖功能。

對不同平臺,Eclipse還開發了一些富有針對性的API。例如,在Windows平臺,可以通過*.ole.win32包很容易的調用ole控件,這使Java程序內嵌IE瀏覽器或Word、Excel等程序成為可能!

要進一步了解SWT的情況,可以在Eclipse IDE的幫助文檔中找到SWT的JavaDoc說明。當然最深入的了解莫過于去讀SWT的源代碼,這也正是開放源代碼項目對程序員的魅力所在!
更復雜的程序
下面讓我們展示一個比上面例子更加復雜一些的程序。這個程序擁有一個文本框和一個按鍵,當用戶點擊按鍵的時候,文本框顯示一句歡迎信息。

為了文本框和按鍵有比較合理的大小和布局,這里采用了GradLayout布局方式。這種布局是SWT中最常用也是最強大的布局方式,幾乎所有的格式都可能通過GradLayout去達到。下面的程序也涉及到了如何應用系統資源(Color),以及如何釋放系統資源。

系統資源的管理

在一個圖形化的操作系統中開發程序,都要調用系統中的資源,如圖片、字體、顏色等。通常這些資源都是有限的,程序員務必非常小心的使用這些資源:當不再使用它們時,就請盡快釋放,不然操作系統遲早會油盡燈枯,不得不重新啟動,更嚴重的會導致系統崩潰。

SWT是用Java開發的,Java語言本身的一大優勢就是JVM的"垃圾回收機制",程序員通常不用理會變量的釋放,內存的回收等問題。那么對SWT而言,系統資源的操作是不是也是如此?答案是一個壞消息,一個好消息。

壞消息是SWT并沒采用JVM的垃圾回收機制去處理操作系統的資源回收問題,一個關鍵的因素是因為JVM的垃圾回收機制是不可控的,也就是說程序員不能知道,也不可能做到在某一時刻讓JVM回收資源!這對系統資源的處理是致命的,試想你的程序希望在一個循環語句中去查看數萬張圖片,常規的處理方式是每次調入一張,查看,然后就立即釋放該圖片資源,而后在循環調入下一張圖片,這對操作系統而言,任何時刻程序占用的僅僅是一張圖片的資源。但如果這個過程完全交給JVM去處理,也許會是在循環語句結束后,JVM才會去釋放圖片資源,其結果可能是你的程序還沒有運行結束,操作系統已經宕掉。

但下面的好消息也許會讓這個壞消息變得無關緊要。對于SWT,只需了解兩條簡單的"黃金"法則就可以放心的使用系統資源!之所以稱為黃金法則,一是因為少,只有兩條,二是因為它們出奇的簡單。第一條是"誰占用,誰釋放",第二條是"父構件被銷毀,子構件也同時被銷毀"。第一條原則是一個無任何例外的原則,只要程序調用了系統資源類的構造函數,程序就應該關心在某一時刻要釋放這個系統資源。

【編輯推薦】

  1. 概述Swing窗體的種類
  2. 淺談Swing線程三種
  3. Swing全屏幕模式
  4. 淺析Swing線程中的LookupEvent
  5. Swing文件選擇器的制作
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-07-16 13:37:33

Swing和AWT

2009-07-17 09:36:14

SWT和Swing的區

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-17 09:55:02

事件監聽器SWT和SwingAWT

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing

2009-07-14 15:01:02

AWT和Swing

2009-07-14 16:02:04

SWT和Swing

2009-07-15 15:15:42

比較Swing和SWT

2009-07-09 13:16:54

Java Swing開

2009-07-10 11:07:18

Swing和SWT

2009-07-17 09:07:20

2009-07-17 10:11:55

AWT和Swing

2009-07-15 16:39:51

AWT和Swing

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-10 17:20:38

Swing構件AWT構件

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-14 12:58:49

AWT和Swing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 10:01:14

Swing和AWT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女中文字幕视频 | 欧美一区二区三区四区在线 | 亚洲精品久久久一区二区三区 | 久久乐国产精品 | 久久免费视频观看 | 在线男人天堂 | 久久久性色精品国产免费观看 | 久久久免费电影 | 91人人在线 | 青草青草久热精品视频在线观看 | 欧美日韩在线播放 | 欧美在线一区二区三区 | 天天天天天天操 | 亚洲精品视频导航 | 成人亚洲视频 | 蜜桃精品在线 | 激情毛片 | 中文字幕免费观看 | 亚洲一级毛片 | 欧美激情一区二区 | 亚洲精品久久久久久一区二区 | 毛片99| 狠狠躁夜夜躁人人爽天天高潮 | 精品欧美一区二区在线观看欧美熟 | 99久久久国产精品 | 精品伦精品一区二区三区视频 | 精品国产乱码久久久久久老虎 | 五月天综合网 | 午夜影院在线免费观看视频 | 国产成人精品免费 | 蜜桃av一区二区三区 | 成人在线视频免费看 | 国产一区日韩在线 | 中文字幕第一页在线 | 波多野结衣二区 | 亚洲国产日韩欧美 | 一区二区在线观看免费视频 | 日韩欧美在线视频 | 激情a | 亚洲精品中文字幕 | 日韩一区精品 |