20170708 Swing界面編程

參考文獻(xiàn):《Java瘋狂講義》(第三版)

Swing開(kāi)發(fā)圖形界面比AWT更優(yōu)秀

因?yàn)镾wing是一種輕量級(jí)組件胆绊,它采用100%的Java實(shí)現(xiàn),不再依賴于本地平臺(tái)的圖形界面,所以可以在所有的平臺(tái)上保持相同的運(yùn)行效果,對(duì)跨平臺(tái)的支持比較出色

此外笤受,Swing提供比AWT更多的圖形界面組件,因此可以開(kāi)發(fā)出更美觀的圖形界面敌蜂。

AWT需要調(diào)用底層平臺(tái)的GUI實(shí)現(xiàn)箩兽,所以AWT只能使用各種平臺(tái)上GUI組件的交集,這大大限制了AWT所支持的組件章喉。

Swing幾乎所有組件都采用了Java實(shí)現(xiàn)汗贫,所以無(wú)需考慮底層平臺(tái)是否支持該組件,因此Swing可以提供許多特殊容器和組件秸脱。

Swing組件都采用了MVC模式落包。

Swing的所有組件采用了Java實(shí)現(xiàn),不再調(diào)用本地平臺(tái)的GUI摊唇,導(dǎo)致Swing圖形界面的顯示速度要比AWT圖形界面顯示速度稍微慢一點(diǎn)咐蝇。

Swing的優(yōu)勢(shì):

1、Swing組件不再依賴于本地平臺(tái)的GUI巷查,無(wú)須采用各種平臺(tái)的GUI交集有序,因此Swing提供了大量圖形界面組件,遠(yuǎn)遠(yuǎn)超過(guò)了AWT所提供的圖形界面組建集

2岛请、Swing組件不再依賴于本地平臺(tái)GUI笔呀,因此不會(huì)產(chǎn)生與平臺(tái)相關(guān)的bug

3、Swing組件在各種平臺(tái)上運(yùn)行可以保證具有相同的圖形界面外觀

特點(diǎn):

1髓需、采用MVC模式

2许师、在各種平臺(tái)上保證一致



知識(shí)點(diǎn):Swing專門(mén)為菜單項(xiàng)、工具按鈕之間的分隔符提供了一個(gè)JSwparator類僚匆,通常使用JMenu或者JPopupMenu的addSeparator()方法來(lái)創(chuàng)建并添加JSeparator對(duì)象微渠,而不是直接使用JSeparator。實(shí)際上咧擂,JSeparator可以用在任何需要使用分隔符的地方逞盆。

知識(shí)點(diǎn):

為菜單項(xiàng)指定快捷鍵時(shí)應(yīng)該使用大寫(xiě)字母來(lái)代表按鍵,例如 KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK)代表“Ctrl+N”松申,但KeyStroke.getKeyStroke('n',InputEvent.CTRL_MASL)不代表“Ctrl +N”

知識(shí)點(diǎn):

JFrame提供了一個(gè)getContentPane()方法云芦,這個(gè)方法用于返回該JFrame的頂級(jí)容器(即JRootPane對(duì)象),這個(gè)頂級(jí)容器會(huì)包含JFrame所顯示的所有非菜單組件贸桶。

即所有看似放在JFrame中的Swing組件舅逸,除了菜單外,其實(shí)都是放在JFrame對(duì)應(yīng)的頂級(jí)組件中的皇筛,而JFrame容器提供了個(gè)體ContentPane()方法返回的頂級(jí)容器琉历。

在Java5之前,Java甚至不允許向JFrame中添加組件,必須先調(diào)用JFrame的getContentPane()方法獲得該窗口的頂級(jí)容器旗笔,然后將所有組件添加到該頂級(jí)容器中彪置。

Java5以后,Java改寫(xiě)了JFrame的add()和setLayout()等方法蝇恶,當(dāng)程序調(diào)用JFrame的add()和setLayout()等方法時(shí)拳魁,實(shí)際上是對(duì)JFrame的頂級(jí)容器進(jìn)行操作。

知識(shí)點(diǎn):

為什么單擊Swing多行文本域時(shí)不是彈出像AWT多行文本域中的右鍵菜單撮弧?

這是由Swing組件和AWT組件實(shí)現(xiàn)機(jī)制不同決定的潘懊。

前面已經(jīng)之處,AWT的多行文本域?qū)嶋H上依賴于本地平臺(tái)的多行文本域想虎。簡(jiǎn)單地說(shuō)當(dāng)我們?cè)诔绦蛑蟹胖靡粋€(gè)AWT多行文本城卦尊,且該程序在Windows平臺(tái)上運(yùn)行時(shí),該文本域組件將和記事本工具編輯區(qū)具有相同的行為方式舌厨,因?yàn)樵撐谋居蚪M件和記事本工具編輯區(qū)的底層實(shí)現(xiàn)是一樣的岂却。

但Swing的多行文本域組件則是純Java的,它無(wú)須任何本地平臺(tái)的GUI支持裙椭,他在任何平臺(tái)上具有相同的行為模式躏哩,所以Swing多行文本域組件默認(rèn)是沒(méi)有右鍵菜單的,必須由程序員顯示的為它分配右鍵菜單揉燃。

而且Swing提供的JTextArea組件默認(rèn)沒(méi)有滾動(dòng)條(AWT的TextArea是否有滾動(dòng)條則取決于底層平臺(tái)的實(shí)現(xiàn))扫尺,為了讓該多行文本域具有滾動(dòng)條,可以將該多行文本域放到JscrollPane容器中炊汤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末正驻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抢腐,更是在濱河造成了極大的恐慌姑曙,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迈倍,死亡現(xiàn)場(chǎng)離奇詭異伤靠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)啼染,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)宴合,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人迹鹅,你說(shuō)我怎么就攤上這事卦洽。” “怎么了徒欣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵逐样,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我打肝,道長(zhǎng)脂新,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任粗梭,我火速辦了婚禮争便,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘断医。我一直安慰自己滞乙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鉴嗤。 她就那樣靜靜地躺著斩启,像睡著了一般。 火紅的嫁衣襯著肌膚如雪醉锅。 梳的紋絲不亂的頭發(fā)上兔簇,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音硬耍,去河邊找鬼垄琐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛经柴,可吹牛的內(nèi)容都是我干的狸窘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坯认,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼翻擒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起牛哺,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陋气,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后荆隘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體恩伺,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年椰拒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晶渠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡燃观,死狀恐怖褒脯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缆毁,我是刑警寧澤番川,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響颁督,放射性物質(zhì)發(fā)生泄漏践啄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一沉御、第九天 我趴在偏房一處隱蔽的房頂上張望屿讽。 院中可真熱鬧,春花似錦吠裆、人聲如沸伐谈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诵棵。三九已至,卻和暖如春祝旷,著一層夾襖步出監(jiān)牢的瞬間履澳,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工缓屠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奇昙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓敌完,卻偏偏與公主長(zhǎng)得像储耐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子滨溉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法什湘,可以作為本類的靜態(tài)方法來(lái)...
    XLsn0w閱讀 1,228評(píng)論 0 2
  • 面向?qū)ο笾饕槍?duì)面向過(guò)程。 面向過(guò)程的基本單元是函數(shù)晦攒。 什么是對(duì)象:EVERYTHING IS OBJECT(萬(wàn)物...
    sinpi閱讀 1,057評(píng)論 0 4
  • AWT AWT是Abstract Window Toolkit(抽象窗口工具包)的縮寫(xiě)闽撤,是SUN專門(mén)針對(duì)Java ...
    值得一看的喵閱讀 2,354評(píng)論 0 1
  • Swing 是一個(gè)為Java設(shè)計(jì)的GUI工具包。 Swing是JAVA基礎(chǔ)類的一部分脯颜。 Swing包括了圖形用戶界...
    chenzg8080閱讀 1,351評(píng)論 0 3
  • 參考文獻(xiàn):《Java瘋狂講義》(第三版) 知識(shí)點(diǎn): Swing并沒(méi)有完全替代AWT哟旗,而是建立在AWT基礎(chǔ)之上,Sw...
    houc閱讀 422評(píng)論 0 0