自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Swing和AWT構(gòu)件

開(kāi)發(fā) 后端
本文簡(jiǎn)單介紹Swing和AWT構(gòu)件,以及介紹AWT為JFC的構(gòu)成提供的的基本結(jié)構(gòu)和抽象窗口工具集等。

Java基本類(lèi)

Java基本類(lèi) (JFC),由一些軟件包組成。這些軟件包主要包括下面一些應(yīng)用程序接口(API):
◆抽象窗口工具集(AWT)(1.1及以上版本)。
◆Swing構(gòu)件。
◆Java2D應(yīng)用程序接口(2D API)。
◆兼容程序接口。
上面列出的這些應(yīng)用程序接口可能會(huì)出現(xiàn)在多個(gè)軟件包中。例如:2D API在Java.awt和 Java.awt.image軟件包中都存在,雖然像Java.awt.geom等一些特殊的軟件包也支持2D API,但 是大量的2D API類(lèi)都存在于Java.awt軟件包中。

AWT(1.1及以上版本)是JFC的核心。AWT為JFC的構(gòu)成提供了以下的基本結(jié)構(gòu):
◆代理事件模型。
◆輕量構(gòu)件。
◆剪貼板和數(shù)據(jù)傳輸。
◆打印和無(wú)鼠標(biāo)操作。

抽象窗口工具集

在開(kāi)發(fā)applet和圖形應(yīng)用程序時(shí),一般需要用到AWT,AWT是免費(fèi)Java開(kāi)發(fā)工具包(JDK)的一部分。 AWT的作用是給用戶(hù)提供基本的界面構(gòu)件,例如按鈕、列表、菜單、文本域等等。AMT構(gòu)件主要是用來(lái)建立圖形用戶(hù)界面的獨(dú)立平臺(tái)。此外,AWT還提供事件處理結(jié)構(gòu)、支持剪貼板、數(shù)據(jù)傳輸和圖像操作。隨著2D API的出現(xiàn),AWT還包括提供高級(jí)字體操作、打印、地理數(shù)據(jù)獲取和輸入方法等功能的軟件包。AWT的初始版本是基于在簡(jiǎn)單用戶(hù)界面中開(kāi)發(fā)小applet 程序而設(shè)計(jì)的,與之相比,當(dāng)前的AWT做了很大的改進(jìn),它提供事件模型重新設(shè)計(jì)、剪貼板和數(shù)據(jù)傳輸支持以及打印和無(wú)鼠標(biāo)操作等功能。從而與Parc Place的VisualWork或Borland公司的Object Windows Library(OWL)等企業(yè)級(jí)用戶(hù)界面具有更多的可比性。

同位體和平臺(tái)獨(dú)立

隨著Applet程序和圖形應(yīng)用程序接口的發(fā)展,AWT提供了一系列的通用類(lèi),這些通用類(lèi)在引用時(shí)不需要考慮特定的窗口平臺(tái),同位體(Peer)就屬于這種AWT類(lèi)集。同位體是一種本地圖形用戶(hù)接口(GUI)構(gòu)件,由AWT類(lèi)管理。同位體的工作方法和它們對(duì)程序開(kāi)發(fā)的影響常
常讓人混淆。

AWT構(gòu)件中,包含有對(duì)其同位體的大量實(shí)用操作。例如,如果你使用AWT創(chuàng)建一個(gè)menu類(lèi)的實(shí)例,那么當(dāng)Java運(yùn)行時(shí)系統(tǒng)將創(chuàng)建一個(gè)菜單同位體的實(shí)例,而由創(chuàng)建的同位體實(shí)際執(zhí)行菜單的顯示和管理。在創(chuàng)建菜單實(shí)例中,Solaris JDK將產(chǎn)生一個(gè)Motif菜單同位體;Windows 95將產(chǎn)生一個(gè)Windows 95菜單同位體;Macintosh JDK將產(chǎn)生一個(gè)Macintosh菜單同位體等等。

一個(gè)Java程序創(chuàng)建并顯示AWT構(gòu)件,AWT構(gòu)件創(chuàng)建并顯示本地構(gòu)件(同位體)。AWT開(kāi)發(fā)組決定使用同位體方法,這一方法使得交叉平臺(tái)窗口工具開(kāi)發(fā)變得極為迅速。使用同位體可以避免重新實(shí)現(xiàn)本地窗口構(gòu)件中已包含的實(shí)用工具,而且,使用同位體還能使applet和應(yīng)用程序保留在本地系統(tǒng)中,這是因?yàn)橥惑w實(shí)質(zhì)上是由本地構(gòu)件組成的,而AWT類(lèi)僅僅是同位體外圍的包裝與操作工具。

雖然在使用AWT時(shí),很少需要直接處理同位體,但它們的存在卻影響其操作結(jié)果。例如,如果沒(méi)有同位體,則某些java.awt.Component方法不會(huì)象我們所預(yù)期的那樣進(jìn)行工作。使用同位體方法可以在記錄時(shí)間內(nèi)實(shí)現(xiàn) GUI工具構(gòu)件。然而,使用同位體也有很多的缺點(diǎn),同位體設(shè)計(jì)基礎(chǔ)存在缺陷并且不能縮放。

輕量構(gòu)件

AWT構(gòu)件全都是重量構(gòu)件,即它們都具有同位體,并且在本地 (不透明)窗口中進(jìn)行顯示。這樣使用將花費(fèi)昂貴的代價(jià),而且在更改其默認(rèn)行為時(shí),不可以將其派生為子類(lèi)。此外,它們必須是矩形的,而且不能有透明的背景。同位體可以快速產(chǎn)生一個(gè)GUI工具構(gòu)件。因?yàn)楸镜赝惑w做了更多的實(shí)際工作,而AWT
類(lèi)所做的僅僅是表面工作,因此,它很容易開(kāi)發(fā)。開(kāi)發(fā)最初的AWT,只用了不到6個(gè)星期的時(shí)間。但這種效率帶的利益在很大程度上被一些不利因素抵銷(xiāo)了,比如基本的同位體結(jié)構(gòu)、有限的事件模式以及同位體與AWT之間不匹配造成的大量缺陷。

1.1版本的AWT引人了輕量構(gòu)件的概念。Swing構(gòu)件直接擴(kuò)展了java.awt.Component或java.awt.Container。輕量構(gòu)件沒(méi)有同位體,在其重量容器窗口中顯示,而不是在其本身窗口中顯示。輕量構(gòu)件不會(huì)導(dǎo)致與它們自己關(guān)連的不透明窗口的性能損失,而且還可以有透明的背景。其中有透明背景的性能意味著即使Swing構(gòu)件的界限域?qū)嶋H上是矩形的,它也可以顯示為非矩形。

【編輯推薦】

  1. 介紹學(xué)習(xí)Swing AWT
  2. 透視Synth與Swing的外觀(guān)
  3. TikeSwing創(chuàng)建MVC體系結(jié)構(gòu)
  4. 對(duì)Java Swing經(jīng)驗(yàn)的討論
  5. JFC和Swing中的JLabel組件
責(zé)任編輯:佚名 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-14 15:01:02

AWT和Swing

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-16 13:37:33

Swing和AWT

2009-07-15 16:39:51

AWT和Swing

2009-07-17 10:11:55

AWT和Swing

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-14 17:38:20

Swing模式

2009-07-17 09:07:20

2009-07-17 10:01:14

Swing和AWT

2009-07-14 12:58:49

AWT和Swing

2009-07-10 15:41:27

Swing AWT

2009-07-10 11:07:18

Swing和SWT

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-16 16:01:55

EventQueue

2009-07-14 18:28:58

Swing入門(mén)

2009-07-15 14:29:24

構(gòu)造JListSwing

2009-07-15 13:06:38

Swing組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)