




已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2,聯(lián)系方式,TelE_mail: ,3,選用教材,出版社:清華大學(xué)出版社 作者:王鵬、何昀峰,4,參考教材,5,成績(jī)?cè)u(píng)定,6,課程學(xué)習(xí)基礎(chǔ), Java編程經(jīng)驗(yàn); 操作系統(tǒng)、軟件工程等知識(shí); 面向?qū)ο蟾拍睢?7,先導(dǎo)知識(shí), GUI(Graphical User Interface) 含義:圖形用戶界面或圖形用戶接口; 說(shuō)明: 以圖形方式顯示的用戶操作界面。 與早期命令行界面相比,在視覺(jué)上更易于接受。 目前大多數(shù)操作系統(tǒng)、面向?qū)ο蟮拈_發(fā)工具、 眾多應(yīng)用系統(tǒng)等均采用了GUI。,8,命令行界面,9,圖形用戶界面,10,GUI的廣泛應(yīng)用是計(jì)算機(jī)發(fā)展的重大成就之一, 極大方便了操作,使得不再需要死記硬背大量的操作命令。 取而代之的是:通過(guò)窗口、菜單、鼠標(biāo)、按鈕等方式來(lái)方便地進(jìn)行軟件操作。 另外,還有“嵌入式”GUI。,GUI特點(diǎn),11,GUI的組成, 桌面-界面中的最底層(頂層容器),可設(shè)置背景; 視窗-應(yīng)用程序?yàn)槭褂脭?shù)據(jù)而在圖形用戶界面中設(shè)置的基本單元; 單一文件界面-一個(gè)數(shù)據(jù)在一個(gè)窗口內(nèi)完成的方式。(切換) 多文件界面-在一個(gè)窗口內(nèi)進(jìn)行多個(gè)數(shù)據(jù)管理的方式; 標(biāo)簽-多文件界面的數(shù)據(jù)管理方式中使用的一種界面;(數(shù)據(jù)標(biāo)題) 菜單-將系統(tǒng)可以執(zhí)行的命令以層次方式顯示出來(lái)的一種界面; 圖標(biāo)-表示數(shù)據(jù)內(nèi)容或與數(shù)據(jù)相關(guān)聯(lián)的應(yīng)用程序的圖形標(biāo)志; 按鈕-以圖形所表示的利用程度高的命令。,12,GUI的準(zhǔn)則, 減少用戶的認(rèn)知負(fù)擔(dān); 保持界面的一致性; 滿足不同目標(biāo)用戶的創(chuàng)意需求; 用戶界面友好性; 圖標(biāo)識(shí)別平衡性; 圖標(biāo)功能的一致性; 建立界面與用戶的互動(dòng)交流; 人性化的視覺(jué)優(yōu)化; 識(shí)別性的圖標(biāo)及其它元素; 可操控性和擴(kuò)充性的易用性; 企業(yè)品牌特色的視覺(jué)識(shí)別性。,13,14,JAVA圖形界面設(shè)計(jì)開發(fā)工具概述,當(dāng)前,我們操作計(jì)算機(jī)或使用各類軟件時(shí),在屏幕上能看到各種各樣的“界面”,它們都是由各種各樣的“組件”構(gòu)成的,每一種組件都有自身的繪制方式,這些組件怎么繪制,系統(tǒng)中都已經(jīng)封裝好了,我們只需要做簡(jiǎn)單的調(diào)用即可。 我們需要了解的是在Java中可以使用什么界面組件庫(kù),是一種還是有很多種呢,下面我們來(lái)作個(gè)簡(jiǎn)單介紹。,15,Java世界中,目前最知名的三大GUI庫(kù)分別是: 1、AWT(Abstract Window Toolkit ) -抽象窗口工具集,包含于所有的Java SDK中。 2、Swing高級(jí)圖形庫(kù) -Java開發(fā)工具集,包含于Java2 SDK中(JDK); -JDK正式名稱為J2SDK(Java2 Software Develop Kit)。 3、SWT (Standard Widget Toolkit ) -標(biāo)準(zhǔn)窗口部件庫(kù); -來(lái)自于IBM Eclipse開源,不包含于JDK中; -需要從Eclipse單獨(dú)下載。,三大GUI組件庫(kù),16,一、AWT介紹, 出現(xiàn)于Java1.x中,是Java初期所內(nèi)置的一種面向窗口應(yīng) 用的庫(kù),作為JDK的一部分,是Java基本類(JFC)的核心; 在Java1.0中,AWT最初的設(shè)計(jì)目標(biāo):提供一個(gè)用來(lái)建立圖 形用戶界面的獨(dú)立平臺(tái),輔助程序員構(gòu)造一個(gè)通用的GUI, 使其在所有平臺(tái)上都能正常顯示(與平臺(tái)無(wú)關(guān)),但這個(gè)目 標(biāo)并沒(méi)有很好的實(shí)現(xiàn); 這種情況從Java1.1以后得到較大改進(jìn),并且從Java1.2開 始,AWT添加了被稱為“Swing”的新GUI庫(kù)。,17,1、AWT的特點(diǎn),通過(guò)對(duì)操作系統(tǒng)自身的界面組件實(shí)現(xiàn),來(lái)完成界面渲染, 即本質(zhì)上是調(diào)用操作系統(tǒng)“自身提供”的界面組件庫(kù)。 我們知道,操作系統(tǒng)很多界面組件庫(kù)是由C或C+編寫的,Java本身不能直接調(diào)用。為了能方便調(diào)用,在Java中已封裝成相關(guān)API,直接調(diào)用即可,變得相對(duì)簡(jiǎn)單一些。 優(yōu)點(diǎn):這套組件的種類較少,速度較快(顯示效率較高)。 既然AWT需要調(diào)用操作系統(tǒng)的界面組件,由此引出一個(gè)概念-對(duì)等模式(對(duì)等體、對(duì)等組件)。,18, 圖形用戶界面的跨平臺(tái)移植比較困難 -在不同系統(tǒng)平臺(tái)上創(chuàng)建的組件,外觀和感覺(jué)(look&feel)不一樣。 AWT采用對(duì)等設(shè)計(jì)模式 -對(duì)每個(gè)組件(抽象組件)都引入一個(gè)對(duì)等體(peer)。 對(duì)等體:一種具有“本地”外觀和感覺(jué)的GUI組件,負(fù)責(zé)本地計(jì)算機(jī) 的顯示和管理工作,聽從抽象組件的指揮。 或者通俗的說(shuō),對(duì)等組件就是指底層平臺(tái)(如Windows操作系統(tǒng))所實(shí)現(xiàn)的圖形用戶界面組件,因?yàn)椴僮飨到y(tǒng)本身也提供了窗體、對(duì)話框、按鈕、菜單等組件。,2、AWT的對(duì)等模式,19,Java AWT,Windows操作系統(tǒng),AWT對(duì)等模式理解示意圖,20,所以用AWT構(gòu)造的Java應(yīng)用程序,在Windows系統(tǒng)上運(yùn)行將保持Windows的GUI風(fēng)格,而拿到Sun工作站上運(yùn)行則將具有Motif圖形用戶界面的風(fēng)格。 -通過(guò)對(duì)等體構(gòu)造與平臺(tái)無(wú)關(guān)的GUI。,21,AWT對(duì)等模式結(jié)構(gòu)關(guān)系圖,對(duì)等設(shè)計(jì)模式:通過(guò)Java封裝的API,將AWT組件直接對(duì)應(yīng)到當(dāng)前 運(yùn)行平臺(tái)上的一個(gè)“等同或類似”的組件上。,22,23,AWT對(duì)等模式的作用,在不同系統(tǒng)平臺(tái)的“兩個(gè)控件之間”建立一個(gè)相互作用的聯(lián)系,而充當(dāng)紐帶的則是Java虛擬機(jī)和虛擬機(jī)-GDI的接口。 因此,AWT首先需要經(jīng)過(guò)通用的Java技術(shù)來(lái)控制圖形、事件等,然后Java虛擬機(jī)再將請(qǐng)求傳送到當(dāng)前平臺(tái)的“圖形和組件接口”去交互。 (顯示),24, Java虛擬機(jī) Java Virtual Machine,簡(jiǎn)稱JVM。 JVM是一個(gè)想象中的機(jī)器,在實(shí)際的計(jì)算機(jī)上通過(guò)軟件模擬來(lái)實(shí)現(xiàn)。其有自己想象中的硬件(如處理器、堆棧、寄存器等),還具有相應(yīng)的指令系統(tǒng)。 GDI Graphics Device Interface,圖形設(shè)備接口。 負(fù)責(zé)系統(tǒng)與繪圖程序之間的信息交換,處理所有程序在當(dāng)前平臺(tái)上的圖形輸出。,兩個(gè)概念,25,Java虛擬機(jī)的特點(diǎn),Java語(yǔ)言的一個(gè)重要特點(diǎn):與平臺(tái)的無(wú)關(guān)性。 -使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。 一般的高級(jí)語(yǔ)言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。 引入Java語(yǔ)言虛擬機(jī)后,Java語(yǔ)言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯。這是因?yàn)镴ava虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息,使Java語(yǔ)言的編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),即可在多種平臺(tái)上不加修改地運(yùn)行。 Java 虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),將字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令予以執(zhí)行。,26,4、AWT對(duì)等模式的缺陷,因?yàn)锳WT通過(guò)“虛擬機(jī)”和“虛擬機(jī)-GDI”兩個(gè)層次來(lái)完成一個(gè)操作,經(jīng)過(guò)的交互層次較多,速度和效率較慢。 因此,AWT對(duì)等模式的致命弱點(diǎn): 效率不高,移植性差!,27,5、AWT的組件,具有對(duì)等體的組件稱為“重量組件(heavyweight components)”。 最初的AWT只包含重量組件,重量組件除擁有本地對(duì)等體特點(diǎn)外,另一個(gè)明顯特點(diǎn)是一個(gè)不透明的矩形區(qū)域(opaque rectangular region),因此它將覆蓋屏幕上該區(qū)域內(nèi)的圖形和組件。,28,AWT中的組件都是重量組件,或者說(shuō)AWT組件都是對(duì)本地操作系統(tǒng)對(duì)等組件的“封裝”。 重量組件的缺陷是開銷大、效率低,每個(gè)組件都要單獨(dú)調(diào)用底層操作系統(tǒng)的功能來(lái)獨(dú)立繪制(顯示),相當(dāng)于在屏幕上開鑿了許多個(gè)獨(dú)立的窗口,因此沒(méi)有辦法實(shí)現(xiàn)組件的透明效果。 而且重量組件受到底層平臺(tái)對(duì)等組件的限制,畢竟只是封裝和調(diào)用了現(xiàn)有的組件,因此具有嚴(yán)重的平臺(tái)相關(guān)性,即在不同操作系統(tǒng)上顯示同一組件有可能不一致。,29,正是由于AWT對(duì)等模式的體系結(jié)構(gòu)存在的問(wèn)題,不能完全保證在各種平臺(tái)上組件的“外觀和感覺(jué)”都一樣。因此,1997年SUN和Netscape合作推出了JFC(Java Foundation Classes)-Java基礎(chǔ)類庫(kù)。 JFC專指用于創(chuàng)建圖形用戶界面的Java API,包括AWT、Java2D API(二維繪圖API)、Swing組件集。,30,JFC的核心部分是Swing用戶界面組件,使用大量“輕量組件(lightweight components)”替代AWT中的重量組件。 輕量組件是不具有對(duì)等體的組件,且是完全透明的(non-opaque)。 實(shí)際上,輕量組件是通過(guò)Java繪圖技術(shù),在其所處的“容器”上繪圖得到的(畫出來(lái)的),因此輕量組件可以實(shí)現(xiàn)繪圖的效果,容易實(shí)現(xiàn)在不同操作系統(tǒng)平臺(tái)上表現(xiàn)的一致性。而且組件的繪制和事件處理開銷比重量組件小得多,因而輕量組件可以實(shí)現(xiàn)較高的程序運(yùn)行效率。,31,由于輕量組件不是自己“單獨(dú)占有一個(gè)窗口”,最終還是要包含或繪制在別的組件上,因此Swing組件中幾個(gè)頂級(jí)容器,如JFrame、JDialog、JApplet等都采用了重量組件作為頂級(jí)窗體,而其它都采用輕量組件。 我們從組件的運(yùn)行效果上肉眼看不出有什么不同,但在實(shí)際開發(fā)中,除了頂層容器只能采用這種重量組件之外,內(nèi)部并不建議重量或輕量組件的混用(不提倡AWT和Swing的組件混用),因?yàn)檫@樣會(huì)導(dǎo)致兼容性的問(wèn)題。,32,可視化組件 凡是能夠看得見,或有一定形狀、尺寸、顯示效果的組件,都可稱為可視化組件。 相對(duì)于可視化組件也可以引入非可視化組件,不過(guò)非可視化組件應(yīng)用較少,如我們?cè)贏WT工具集中使用的布局管理器FlowLayout、BorderLayout等,它們也起到了組件或組件在容器內(nèi)布局的角色,但由于本身是不可見的,所以稱之為非可視化組件。,33,AWT作為Java開發(fā)工具包(JDK)的組成部分,是Java基本類(JFC)的核心,主要是為用戶提供“基本的界面組件”。 AWT包含四個(gè)主要的類: 組件類(Component) 容器類(Container) 圖形類(Graphics) 布局管理器類(LayoutManager),34, 組件類(Component) -包含菜單、按鈕、列表等組件的抽象基本類。 容器類(Container) -擴(kuò)展Component的抽象基本類。 -由Container派生的類有Panel、Applet、Window、Dialog 、Frame類等。(在容器中可以包含多個(gè)組件) 圖形類(Graphics) -定義組件內(nèi)圖形操作的基本類。 每個(gè)組件都有一個(gè)相關(guān)的圖形對(duì)象。 布局管理器類(LayoutManager) -定義容器中組件的位置和尺寸的接口。 (Java中定義了幾種默認(rèn)的布局管理器),35,表:AWT中的軟件包,36,AWT類間的關(guān)系,組件類、容器類、布局管理器類構(gòu)成了AWT中的簡(jiǎn)單基礎(chǔ)關(guān)系。 容器中可以包含組件; 所有的容器都包含布局管理器,用來(lái)指定容器中組件的位置和形狀。 圖形類提供在組件中顯示文本和圖形的方法。 AWT中許多操作都發(fā)生在組件、容器和布局管理器之間。,37, AWT組件類,組件(Component)是圖形用戶界面的基本組成元素,凡是能以圖形化方式顯示在屏幕上,并能夠與用戶進(jìn)行交互(被用戶操作)的對(duì)象都是組件。 如:菜單、按鈕、標(biāo)簽、文本框、滾動(dòng)條等。 組件不能獨(dú)立顯示出來(lái),必須將組件放在一定的容器中才可以顯示出來(lái)。,38,!組件(Component)是構(gòu)成AWT的基礎(chǔ)。 AWT中包括大量組件,其中多數(shù)類是由java.awt.Component類擴(kuò)展而來(lái)的。 java.awt.Component是一個(gè)抽象類,是除菜單相關(guān)組件之外所有AWT組件類的根父類,Component類中定義了大量的屬性和方法 ,這些屬性和方法規(guī)定了GUI組件的基本特性,如尺寸、位置、顏色、字體等等,這些方法也實(shí)現(xiàn)了作為一個(gè)GUI部件所應(yīng)具備的基本功能。 同時(shí),它也為其派生類提供了許多功能。(繼承),39,組件類的層次(繼承)結(jié)構(gòu),40, AWT容器類,從java.awt.Container類擴(kuò)展的類稱為容器,Container也是一個(gè)從Component擴(kuò)展的抽象類。 顧名思義,容器就是用來(lái)包含組件的。一個(gè)容器可以包含多個(gè)組件,也可以使用容器將相關(guān)組件關(guān)聯(lián)在一起,成為一個(gè)整體。(使用方法add()添加組件到當(dāng)前容器中) 合理的使用容器可以簡(jiǎn)化圖形界面的設(shè)計(jì),而且對(duì)組件的顯示安排也很有用。 AWT中有兩種主要的容器類型: Java.awt.window Java.awt.panel,41,表:從java.awt.Container類派生的AWT常用容器,42, AWT布局管理器類,容器只能記錄包含的組件,而布局管理器則負(fù)責(zé)指定容器中“組件的位置和大小”。 Java的布局管理器只需要確定組件與其它組件的相對(duì)位置,而不需要決定它的坐標(biāo),這樣的安排使得與平臺(tái)無(wú)關(guān)的用戶界面更易于實(shí)現(xiàn)。 AWT中提供了五種布局管理器: BorderLayout(區(qū)域) CarderLayout(卡片棧 ) FlowLayout(順序) GridLayout(網(wǎng)格) GridBagLayout(網(wǎng)格包),43, BorderLayout 將容器劃分為東、南、西、北、中五個(gè)區(qū)域,當(dāng)添加組件到容器中時(shí),需指明放置到哪一個(gè)區(qū)域中。 CarderLayout 將容器當(dāng)作一個(gè)卡片棧,添加到容器中的每個(gè)組件都被放置在一個(gè)單獨(dú)的卡片上,但每次只能顯示一張卡片。 FlowLayout 將添加到容器中的組件,按從上到下,從左到右的順序依次排列。,44, GridLayout 將容器分成相同尺寸的網(wǎng)格,添加到容器中的組件按從左到右、從上到下的順序放置在每一個(gè)網(wǎng)格中。 GridBagLayout 也是將容器分成網(wǎng)格,與GridLayout區(qū)別是,一個(gè)組件可以占據(jù)不止一個(gè)網(wǎng)格的位置。,45,Swing的引入,通過(guò)以上對(duì)AWT的介紹,我們基本明白了Sun為什么要用Swing來(lái)讓我們離開AWT的主要原因。 因?yàn)?,既然是?duì)等模式,那么AWT就必須使用所有“操作系統(tǒng)的圖形接口功能”的交集,但由于AWT的接口只有一套。所以,為了保證移植性,就只能使用所有操作系統(tǒng)都能夠支持的最少特性。 因此,我們經(jīng)常抱怨AWT的功能太少,圖形太難看等等,這實(shí)際是為了保證移植性而做出的犧牲。,46,從Java2,即Java1.2版本開始,Sun開始在JDK中提供一套“新的圖形界面接口系統(tǒng)Swing”。 Swing是基于AWT基本結(jié)構(gòu),創(chuàng)建的二級(jí)用戶界面工具集,提供了一整套GUI組件。,47,Swing是建立在AWT基礎(chǔ)上的一種增強(qiáng)型的Java GUI組件(工具集、工具包),主要是使用“輕量組件”替代AWT中絕大多數(shù)“重量組件”;界面組件的渲染完全由Java自身完成,而不是調(diào)用操作系統(tǒng)的界面組件實(shí)現(xiàn),是由Java自己繪制完成的。 這樣做的好處是程序在對(duì)組件的調(diào)用上完全Java化,較少摻合其它語(yǔ)言,有利于跨平臺(tái)。 而AWT是調(diào)用操作系統(tǒng)的對(duì)等界面組件,因此在某些時(shí)候會(huì)受到平臺(tái)的限制。,48, 庫(kù)中組件種類比較豐富,速度上稍有欠缺 用程序進(jìn)行界面開發(fā),首先需要認(rèn)識(shí)界面中的各種元素(對(duì)象); 元素(對(duì)象)又對(duì)應(yīng)各自的類,所以需用各自的類構(gòu)造出各自的對(duì)象;再將這些對(duì)象以某種方式組合在一起(布局),讓它們顯示出來(lái),這就是我們看見的界面。 不同的組件庫(kù)提供了對(duì)各種界面組件元素不同的實(shí)現(xiàn)類 如“按鈕”,AWT中提供的類Button,Button類將用來(lái)實(shí)現(xiàn)按鈕的功能,若要顯示按鈕,就需要用Button類構(gòu)造一個(gè)對(duì)象,這個(gè)對(duì)象就是要在界面上顯示的一個(gè)組件。而在Swing中對(duì)按鈕提供的是JButton類。 所以不同的界面組件庫(kù)中,對(duì)界面組件的實(shí)現(xiàn)類也有所不同。,但也因此存在缺點(diǎn),49,Java Swing有何特點(diǎn)? 如何運(yùn)用Swing進(jìn)行圖形界面開發(fā)?,50,第1章 Java Swing概述,Java Swing已成為圖形界面開發(fā)的主要工具之一,相對(duì)于AWT技術(shù)而言,Java Swing更為豐富。 本課程通過(guò)對(duì)Java Swing的發(fā)展史、功能、特性等方面的介紹,了解Java Swing之所以成為圖形開發(fā)主流工具的原因。 重點(diǎn):在應(yīng)用Java Swing進(jìn)行圖形開發(fā)過(guò)程,可熟練應(yīng)用Swing工具包中提供的各種API。,51,1.1 什么是Java Swing,Swing是一個(gè)用于開發(fā)Java圖形界面應(yīng)用程序的工具包(集),以抽象窗口工具包(AWT)為基礎(chǔ),使跨平臺(tái)的應(yīng)用程序能使用任何可插拔(定制)的外觀風(fēng)格。 開發(fā)人員只需使用少量代碼,即可利用Swing包中豐富、靈活的“功能”和“模塊化的組件類”,開發(fā)出令人滿意的用戶界面。,52,1.1.1 Swing的發(fā)展史,由于Swing是以AWT為基礎(chǔ),所以認(rèn)識(shí)Swing之前,需要對(duì)AWT有一定了解: AWT是Abstract Window Toolkit(抽象窗口工具集)的簡(jiǎn)稱。在AWT 包中擁有很多組件類,這些組件類是開發(fā)圖形界面程序的基礎(chǔ)。 Swing是在AWT基礎(chǔ)上,對(duì)AWT的組件進(jìn)行修改和升級(jí),避免了在運(yùn) 用AWT開發(fā)中遇到的一些問(wèn)題。 因此,AWT被Swing取代的主要原因:AWT工具集中的“組件類”已經(jīng)不能滿足眾多軟件系統(tǒng)中,對(duì)圖形化界面的應(yīng)用要求。,53, AWT并非專門為用戶界面(UI)工具包設(shè)計(jì),其初衷是用于開發(fā)小型應(yīng) 用程序中的圖形界面。因此,針對(duì)圖形界面開發(fā)的功能較少,并且很 多重要功能都不具備。如剪貼板、打印支持、鍵盤導(dǎo)航等特性,甚至 沒(méi)有“彈出式菜單”或“滾動(dòng)窗格”的基本特性。 由于AWT存在較高的錯(cuò)誤率,涌現(xiàn)出了其它一些用于圖形界面開發(fā)的工 具包,如IFC - Internet Foundation Classes。 (IFC是一組建立在NEXTSTEP平臺(tái)上的輕量組件類),54,55,1.1.2 Swing的功能,通過(guò)與AWT的比較,了解Swing的相關(guān)功能: AWT具有與本地圖形界面進(jìn)行交互的接口 AWT中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間具有一一對(duì)應(yīng)關(guān)系。(對(duì)等) 即,當(dāng)使用AWT工具集創(chuàng)建圖形用戶界面時(shí),實(shí)際上就是在使用“本地操作系統(tǒng)”所提供的“圖形庫(kù)”來(lái)繪制圖形界面。,56, AWT的對(duì)等模式導(dǎo)致移植性差 由于“不同操作系統(tǒng)的圖形庫(kù)”所提供的功能不一樣,在一個(gè)平臺(tái)上存在的功能,可能在另一個(gè)平臺(tái)上不存在。 因此,為實(shí)現(xiàn)java語(yǔ)言“一次編譯,到處運(yùn)行”的概念,AWT只能通過(guò)犧牲功能來(lái)實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性。即AWT所提供的圖形功能是“各種不同操作系統(tǒng)”所提供的圖形功能的交集。 也正是由于AWT采用這種“依靠本地操作系統(tǒng)的對(duì)等方法”來(lái)實(shí)現(xiàn)其功能,所以AWT控件都是重量級(jí)控件。,57, Swing為純Java實(shí)現(xiàn),不依賴于操作系統(tǒng),移植性較強(qiáng) Swing是在AWT基礎(chǔ)上發(fā)展起來(lái)的一套新的圖形界面開發(fā)工具,不僅提供了AWT提供的所有組件,而且用純粹的Java代碼對(duì)AWT的組件進(jìn)行了擴(kuò)充。(如樹型組件) 因此,在一個(gè)平臺(tái)上設(shè)計(jì)的組件可在其它平臺(tái)上使用,所以通常將Swing組件稱為輕量級(jí)組件。(除少數(shù)頂級(jí)容器外) 不依賴操作系統(tǒng)的支持,是與AWT組件的最大區(qū)別。,Swing的功能:,58, “swing包”是Java Swing提供的最大的包 內(nèi)含近100個(gè)類和25個(gè)接口,幾乎所有Swing組件都在swing包中。 Swing組件均以“J”開頭 除有與AWT類似的按鈕(JButton)、標(biāo)簽(JLabel)、復(fù)選框(JCheckBox) 、菜單(JMenu)等基本組件外,還增加了一個(gè)豐富的高層組件集合。 如表格(JTable)、樹(JTree)。 漏寫“J”,有時(shí)也能運(yùn)行,但有可能造成視覺(jué)與行為的不一致。,1.1.3 Swing的特性,59, 支持鍵盤操作 在Swing組件中,使用JComponent類的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)天九牌數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)企業(yè)管理基礎(chǔ)平臺(tái)軟件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)云母板式水位計(jì)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年度智能硬件公司個(gè)人股份協(xié)議轉(zhuǎn)讓
- 二零二五年度足療養(yǎng)生館經(jīng)營(yíng)管理權(quán)轉(zhuǎn)讓合同
- 二零二五年度辣椒病蟲害防治合作協(xié)議
- 二零二五年度網(wǎng)絡(luò)安全商標(biāo)注冊(cè)及保護(hù)合同
- 二零二五年度木門市場(chǎng)調(diào)研采購(gòu)合同洞察行業(yè)趨勢(shì)
- 三方2025年度房屋租賃及使用權(quán)轉(zhuǎn)移管理合同
- 2025年度租賃房屋租賃期租金支付方式及違約金協(xié)議
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)參考答案
- 2022年四川省綿陽(yáng)市中考化學(xué)試卷
- (完整版)微生物檢驗(yàn)技術(shù)練習(xí)題(含答案)
- 佛山市內(nèi)戶口遷移申請(qǐng)表
- 《工程制圖完整》課件
- 常見焊接缺陷以及其處理方法PPT
- 《子宮脫垂護(hù)理查房》
- 關(guān)于對(duì)項(xiàng)目管理的獎(jiǎng)懲制度
- A320主起落架收放原理分析及運(yùn)動(dòng)仿真
- 2. SHT 3543-2017施工過(guò)程文件表格
評(píng)論
0/150
提交評(píng)論