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

Swing組件也是AWT的一部分

開發(fā) 后端
本文介紹Swing組件也是AWT的一部分,包括介紹模型與視圖和控件分離,可編程外觀和呈現(xiàn)器和編輯器。

Java Swing 是 Java Foundation Classes(JFC)的一部分,它是試圖解決 AWT 缺點(diǎn)的一個(gè)嘗試。在 Swing 中,Sun 開發(fā)了一個(gè)經(jīng)過仔細(xì)設(shè)計(jì)的、靈活而強(qiáng)大的 GUI 工具包。不幸的是,這意味著我們又要花一些時(shí)間來學(xué)習(xí) Swing 了,對于常見的情況來說,Swing 有些太復(fù)雜了。

Swing 是在 AWT 組件基礎(chǔ)上構(gòu)建的。所有 Swing組件實(shí)際上也是 AWT 的一部分。Swing 使用了 AWT 的事件模型和支持類,例如 Colors、Images 和 Graphics。Swing組件、布局管理器以及事件。正如您可以看到的一樣,這些組件集比 AWT 提供的組件集更為廣泛,與 SWT 組件集相比也毫不遜色。

為了克服在不同主機(jī)上行為也會(huì)不同的缺點(diǎn),Swing 將對主機(jī)控件的依賴性降至了最低。實(shí)際上,Swing 只為諸如窗口和框架之類的頂層 組件使用對等體。大部分組件(JComponent 及其子類)都是使用純 Java 代碼來模擬的。這意味著 Swing 天生就可以在所有主機(jī)之間很好地進(jìn)行移植。因此,Swing 通??雌饋聿⒉幌袷潜镜爻绦?。實(shí)際上,它有很多外觀,有些模擬(盡管通常并不精確)不同主機(jī)的外觀,有些則提供了獨(dú)特的外觀。

Swing 對基于對等體的組件使用的術(shù)語是重量級(jí)(heavyweight),對于模擬的組件使用的術(shù)語是輕量級(jí)(lightweight)。實(shí)際上,Swing 可以支持在一個(gè) GUI 中混合使用重量級(jí)組件和輕量級(jí)組件,例如在一個(gè) JContainer 中混合使用 AWT 和 Swing 控件,但是如果組件產(chǎn)生了重疊,就必須注意繪制這些控件的順序。

Swing 無法充分利用硬件 GUI 加速器和專用主機(jī) GUI 操作的優(yōu)點(diǎn)。結(jié)果是 Swing 應(yīng)用程序可能比本地 GUI 的程序運(yùn)行速度都慢。Sun 花費(fèi)了大量的精力來改進(jìn)最近版本的 Swing (Java V1.4 和 1.5)的性能,這種缺點(diǎn)正在變得日益微弱。由于 Swing 的設(shè)計(jì)更加健壯,因此其代碼基礎(chǔ)也更堅(jiān)實(shí)。這意味著它可以在一臺(tái)健壯的機(jī)器上比 AWT 和 SWT 上運(yùn)行得更好。

除了具有更多的組件、布局管理器和事件之外,Swing 還有很多特性使得自己比 AWT 的功能更加強(qiáng)大。下面是更為重要的幾個(gè)特性:

模型與視圖和控件分離

對于這個(gè)模型中的所有組件來說,模型都是與組件分離的。這樣可以根據(jù)應(yīng)用程序的需求來采用模型,并在多個(gè)視圖之間進(jìn)行共享。為了方便起見,每個(gè)組件類型都提供有默認(rèn)的模型。

可編程外觀

每個(gè)組件的外觀(外表以及如何處理輸入事件)都是由一個(gè)單獨(dú)的、可動(dòng)態(tài)替換的實(shí)現(xiàn)來進(jìn)行控制的。這樣我們就可以改變基于 Swing 的 GUI 的部分或全部外觀。

呈現(xiàn)器和編輯器

大部分顯示模型內(nèi)容的組件,例如列表、表和樹,都可以處理幾乎所有類型的模型元素。這可以通過為每種組件類型和模型類型映射一個(gè)渲染器或編輯器來實(shí)現(xiàn)。例如,一個(gè)具有包含 java.util.Date 值的列的表可以有一些專用的代碼來呈現(xiàn)數(shù)據(jù)值和編輯數(shù)據(jù)值。每一列都可以有不同的類型。以上是Swing組件也是AWT的一部分。

【編輯推薦】

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

2013-03-14 14:11:27

IaaS

2019-04-10 11:06:54

前端HTMLCSS

2024-05-15 08:12:11

SignalJavaScriptPromises

2010-03-11 11:29:51

喬布斯

2020-10-13 09:54:38

內(nèi)存技術(shù)數(shù)據(jù)

2012-12-13 13:09:38

2009-06-09 14:40:01

Javascript表單驗(yàn)證

2019-05-09 15:20:24

微軟WindowsLinux

2009-06-11 15:25:39

Java隨機(jī)數(shù)

2020-05-07 15:10:23

HBaseHadoop數(shù)據(jù)平臺(tái)

2009-06-12 10:34:40

Java Date

2009-06-12 10:08:05

StaticJava

2025-01-22 08:01:53

2025-04-24 00:10:00

RAGAI人工智能

2024-11-06 14:36:27

2013-07-08 15:45:04

Python

2021-10-10 00:03:38

NodePodTerminating

2013-09-24 10:07:19

Ruby項(xiàng)目

2013-04-08 15:42:38

Backbone.js入門

2021-08-19 10:23:56

數(shù)據(jù)中心電網(wǎng)能源
點(diǎn)贊
收藏

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