偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

AWT和Swing的可訪問性

開發(fā) 后端
本文介紹AWT和Swing的可訪問性,與 AWT 類似,Swing 的一個優(yōu)點是,它也是 Java 技術的一種標準配置。這意味著您不需要自己來安裝它了。

可訪問性

創(chuàng)建一個殘疾人可以訪問的 GUI 是非常重要的。Swing 為實現(xiàn)具有可訪問性的 GUI 提供了豐富的基礎設施和 API。這種支持是單獨的,但是如果主機上具有可訪問性支持,那么它們應該集成在一起。

與 AWT 一樣,Swing 可以支持 GUI 組件的自動銷毀。Swing 還可以支持 AWT 的自底向上和自頂向下的構建方法。

與 AWT 不同,Swing 組件不是線程安全的,這意味著您需要關心在應用程序中是哪個線程在更新 GUI。如果在使用線程時出現(xiàn)了錯誤,就可能會出現(xiàn)不可預測的行為,包括用戶界面故障。有一些工具可以幫助管理線程的問題。

與 AWT 類似,Swing 的一個優(yōu)點是,它也是 Java 技術的一種標準配置。這意味著您不需要自己來安裝它了。不幸的是,Swing 已經(jīng)有了很大的變化,因此它很容易變得依賴于最新版本的 Java 語言所提供的特性,這可能會強制用戶更新自己的 Java 運行時環(huán)境。

與 AWT 的概念相比,SWT 是一個低級的 GUI 工具包。JFace 是一組用來簡化使用 SWT 構建 GUI 的增強組件和工具服務。SWT 的構建者從 AWT和Swing 實現(xiàn)中學習了很多經(jīng)驗,他們試圖構建一個集二者優(yōu)點于一體而沒有二者的缺點的系統(tǒng)。從很多方面來說,他們已經(jīng)成功了。

SWT 也是基于一個對等體實現(xiàn)的,在這一點上它與 AWT 非常類似。它克服了 AWT 所面臨的 LCD 的問題,方法如下:定義了一組控件,它們可以用來構建大部分辦公應用程序或開發(fā)者工具,然后可以按照逐個主機的原則,為特定主機所沒有提供的控件創(chuàng)建模擬控件(這與 Swing 類似)。對于大部分現(xiàn)代主機來說,幾乎所有的控件都是基于本地對等體的。這意味著基于 SWT 的 GUI 既具有主機外觀,又具有主機的性能。這樣就避免了使用 AWT和Swing 而引起的大部分問題。特定的主機具有一些低級功能控件,因此 SWT 提供了擴充(通常是模擬的)版本(通常使用 “C” 作為名字中的第一個字母),從而可以產(chǎn)生更一致的行為。

在對等體工作方式上,SWT 與 AWT 不同。在 SWT 中,對等體只是主機控件上的一些封裝程序而已。在 AWT 中,對等體可以提供服務來最小化主機之間的差異(就是在這里,AWT 碰到了很多行為不一致的問題)。這意味著 SWT 應用程序?qū)嶋H上就是一個主機應用程序,它必然會全部繼承主機的優(yōu)點和缺點。這還意味著 SWT 不能完全實現(xiàn) WORE 的目標;它更像是一種 WOTE 解決方案。這就是說,SWT 盡管不如 Swing 那么優(yōu)秀,但是它在創(chuàng)建可移植解決方案方面是很杰出的。

正如您可以看到的一樣,這些組件集比 AWT 提供的組件集更為廣泛,與 Swing 組件集相比也毫不遜色。

與 AWT和Swing 布局管理器類似,SWT 也提供了非常豐富的布局部件集。布局系統(tǒng)與嵌套容器一起使用,可以生成所需要的任何布局算法。所有這 3 個 GUI 庫也可以支持對部件的定位實現(xiàn)絕對控制。SWT 沒有等效的 BorderLayout 部件,這一點非常令人失望。FormLayout 對于創(chuàng)建表單基本輸入來說非常好用。我認為 SWT 的布局機制比 AWT/Swing 布局部件集的使用更難學習。

與 AWT和Swing 事件系統(tǒng)一樣,SWT 提供了非常豐富的事件集。盡管這些事件并不能與 AWT/Swing 的事件一一對應(例如 AWT和Swing 的按鈕都會產(chǎn)生 ActionEvent 事件,而 SWT 的按鈕產(chǎn)生的則是 SelectionEvent 事件),但是它們通常都是等價的。

很多 Swing 組件,例如 JTable,都有自己的模型。對應的 SWT 控件(例如 Table)則沒有;不過它們有自己的條目。條目通常用來限制顯示文本或通常很小的圖像(例如圖標)。為了提供一種類 Swing 的模型接口,SWT 使用了 JFace ContentProviders。這些組件可以在應用程序提供的模型(例如 List 或 Table 使用的 java.util.Array )和用作視圖的控件之間充當一個橋梁。為了將任意模型對象格式化成條目,SWT 使用了 JFace LabelProviders,它們可以為任何模型對象生成一個文本或圖標格式。這可以對復雜模型對象的混合顯示進行限制。其他類似組件,例如 ColorProviders 和 LabelDecorators,可以增強對這些條目的顯示。對于 Tables 的特例來說,SWT 提供了 CellEditor,它可以臨時將任意 SWT 控件鏈接到一個 Table 單元格上,從而當作這個單元格的編輯器使用。

SWT 不支持 GUI 控件的自動銷毀。這意味著我們必須顯式地銷毀所創(chuàng)建的任何控件和資源,例如顏色和字體,而不能利用 API 調(diào)用來實現(xiàn)這種功能。這種工作從某種程度上來說得到了簡化,因為容器控制了其子控件的自動銷毀功能。

使用 SWT 只能自頂向下地構建 GUI。因此,如果沒有父容器,子控件也就不存在了;通常父容器都不能在以后任意改變。這種方法不如 AWT/Swing 靈活。控件是在創(chuàng)建時被添加到父容器中的,在銷毀時被從父容器中刪除的。而且 SWT 對于 style 位的使用只會在構建時進行,這限制了有些 GUI 控件的靈活性。有些風格只是一些提示性的,它們在所有平臺上的行為可能并不完全相同。

與 Swing 類似,SWT 組件也不是線程安全的,這意味著您必須要關心在應用程序中是哪個線程對 GUI 進行了更新。如果在使用線程時發(fā)生了錯誤,就會拋出異常。我認為這比不確定的 Swing 方法要好。有一些工具可以幫助管理線程的問題。

如果所支持的操作系統(tǒng)提供了可訪問性服務,那么 SWT GUI 通常也就具有很好的可訪問性。當默認信息不夠時,SWT 為程序員提供了一個基本的 API 來指定可訪問性信息。

SWT 提供了一個有限的圖形環(huán)境。到目前為止,它對于 Java2D 和 Java3D 的支持還不怎么好。Eclipse 使用一個名為 Draw2D 的組件提供了另外一種單獨的圖形編輯框架(Graphical Editing Framework,GEF),它可以用來創(chuàng)建一些繪圖應用程序,例如 UML 建模工具。不幸的是,GEF 難以單獨(即在整個 Eclipse 環(huán)境之外)使用。

與 AWT和Swing 不同,SWT 和 JFace 并不是 Java 技術的標準配置。它們必須單獨進行安裝,這可以當作是 Eclipse 安裝的一部分,也可以當作是單獨的庫進行安裝。Eclipse 小組已經(jīng)使它的安裝變得非常簡單,并且 SWT 可以與 Eclipse 分開單獨運行。所需要的 Java 檔案文件(JAR)和動態(tài)鏈接庫(DLL)以及 UNIX® 和 Macintosh 上使用的類似庫可以從 Eclipse Web 站點上單獨下載。JFace 庫需要您下載所有的 Eclipse 文件,并拷貝所需要的 JAR 文件。在下載所需要的文件之后,我們還需要將這些 JAR 文件放到 Java CLASSPATH 中,并將 DLL 文件放到系統(tǒng) PATH 中。

【編輯推薦】

  1. Swing模型過濾器概述
  2. 淺談WebRenderer與Swing應用程序
  3. TableModelExample可以簡化Swing
  4. JTable和TableModel簡化Swing
  5. 用BeanTableModel簡化Swing
責任編輯:佚名 來源: 機械工業(yè)出版社
相關推薦

2009-07-14 15:01:02

AWT和Swing

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-17 10:11:55

AWT和Swing

2009-07-17 09:07:20

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-10 17:20:38

Swing構件AWT構件

2009-07-16 13:37:33

Swing和AWT

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-15 16:39:51

AWT和Swing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-17 10:01:14

Swing和AWT

2009-07-10 15:41:27

Swing AWT

2024-05-13 08:51:39

2009-07-17 10:25:41

AWT和SwingSWT

2011-02-17 08:49:49

WebHTMLCSS

2023-09-27 16:08:37

2011-04-15 17:33:39

SWINGAWT

2009-07-17 09:55:02

事件監(jiān)聽器SWT和SwingAWT
點贊
收藏

51CTO技術棧公眾號