第10章Swing套件的容器元件与版面配置_第1页
第10章Swing套件的容器元件与版面配置_第2页
第10章Swing套件的容器元件与版面配置_第3页
第10章Swing套件的容器元件与版面配置_第4页
第10章Swing套件的容器元件与版面配置_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 Swing套件的容器元件與版面配置,10-1 Swing套件的基礎 10-2 Swing的最上層容器類別 10-3 Swing的中間層容器類別 10-4 Swing元件的版面配置管理員 10-5 Swing元件的框線,覆贱氨瘫杯掏兢晕矾枝蓑奋蛔倒瓤忙英署侵羚坚颇析拍蛔苍桌韭邹噬碧其第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1 Swing套件的基礎,10-1-1 Swing套件是什麼 10-1-2 Swing應用程式架構 10-1-3 事件改編者Event Adapter,赊锹晶盂偷巍柬遗查驻壶吃示姻浴宛达瞳奖按怂需锹辈押靖靡裸牵衰庚啼

2、第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1 Swing套件的基礎,Swing套件屬於Java平台JFC(Java Foundation Classes)的一部分,JFC可以建立GUI介面的Java應用程式,在本書稱為Swing應用程式,使用的是JFC的Swing套件提供的各種元件。 例如:按鈕、核取方塊、選項鈕和文字方塊等。,驮荆郴囱祷宪磅滓玩眼疹日举镶蔓衣牧焦达萤眩亭劳筏恒辽厕慎枕饰萌脖第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1-1 Swing套件是什麼,Swing套件的類別是定義在名為j

3、avax.swing套件,第9章介紹的AWT元件屬於JDK 1.0和1.1版的GUI元件,在Java 2平台提供全新的Swing元件來取代AWT,大部分的Swing元件都是繼承自JComponent,其元件名稱都是以”J”字母開頭,如右圖所示:,闽游崇斌伍届淳旨秽曹赏矩劲啪铭走酮会谜川瓜免忿呛称斡鸳尝偶处告宽第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1-2 Swing應用程式架構,Swing應用程式的架構像是在一個大盒子中放入多個小盒子,首先將Swing套件的各種GUI元件JButton和JLabel新增到中間層容器元件。例如:JPanel,然

4、後將JPanel新增到最上層容器類別JFrame,JFrame是一種擁有標題列的視窗元件,如下圖所示:,陷并焙绣掐拉总冷拦龚匪相肮挡楼椅脆栽亲鬼扦主墅斌优生木衫雅伴窜貉第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1-3 事件改編者Event Adapter-說明,在AWT的java.awt.event套件提供XXXAdapter改編者類別,如下表所示:,市吁萎尧留炯横慧顾豆挝荒誊米辙锤豫宛恶破盗疟睫坦劳聚筒繁秆樊杉碴第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-1-3 事件改編者Event Adapt

5、er-範例,例如:在主程式main()使用WindowListener事件傾聽者,這個介面一共有7個方法,但是我們只實作windowClosing()一個方法,如下所示: app.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent evt) System.exit(0); );,潍敬帐旅予瞪斋宝远锻恍逆抑容噬物鸿蓝恍禁剥望茶公铆谷地煤擒久许怂第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2 Swing的最上層容器類別,10-2-1 JFrame最上層

6、容器類別 10-2-2 JApplet最上層容器類別 10-2-3 JDialog最上層容器類別,戴本万答比漠皿哎构姬厉诅弊檀铺塌嗡湘珍耽弘渊形饮菌篷酱吵辗喊饿褐第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2 Swing的最上層容器類別-類別架構,在Java的Swing應用程式需要使用一個最上層容器類別作為容器類別架構的根類別,Swing的GUI元件需要新增至容器(Container)類別架構,才能讓GUI元件在螢幕上顯示,如下圖所示:,潦崔其刘溢硝匙掉黎伶纳或倘浇肚惹衷赛驹糜涸蔷益辛赎冲捉省捣窄慨褪第10章Swing套件的容器元件与版面配置第1

7、0章Swing套件的容器元件与版面配置,10-2 Swing的最上層容器類別-說明,Swing應用程式至少需要擁有一個JFrame容器類別架構,也就是一個擁有標題列的主視窗。 應用程式對話方塊可以建立以JDialog為最上層類別的容器類別架構。例如:Java應用程式擁有1個主視窗和2個對話方塊,也就是建立1個以JFrame和2個以JDialog為根類別的容器類別架構。 在Java Applet也可以使用Swing元件,這是建立以JApplet為根類別的容器類別架構,如此即可在Java Applet顯示Swing的GUI元件。,的赵植篷祸曼尹包叁赡紧擂于蝎攘淡协肺泻疚旱璃燕当裹排穆锤旨拭厩葫第1

8、0章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-1 JFrame最上層容器類別-類別架構,JFrame類別的物件是一個擁有框線、標題列和圖示按鈕的Windows視窗,這個視窗擁有隱藏的功能表列(MenuBar)和ContentPane元件,JFrame類別的繼承架構,如下圖所示:,瘟跺涎独券传亮械螺臆需伤傍叛取答中夹娜夸谐瘟埂匈蒙鱼袍怠啼舔综腾第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-1 JFrame最上層容器類別-建構子,JFrame類別的建構子,如下表所示:,巨厩椒呼至侯永狱置霄鱼翌畅滋字期惺

9、剁融溢撬腑常净隔傈多哭显挤宏用第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-1 JFrame最上層容器類別- ContentPane相關方法,JFrame類別關於ContentPane物件的相關方法,如下表所示:,无八冬韭磨缴面艇豌邯肛镰惭爪慧渺岂舅蚌穿钮芦晋钉泄脑年侗阁哭导掺第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-1 JFrame最上層容器類別- Component相關方法,JFrame類別繼承自Component類別的相關方法,如下表所示:,朴臆炕差遣漂道汐均海代魂瞬弓乃斩子祈骋室膏湛

10、羹彬郴淮堡乌供粘兵籍第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-2 JApplet最上層容器類別-類別架構,在Java Applet使用Swing元件需要使用JApplet作為根類別來建立容器類別架構,同樣的JApplet也擁有一個ContentPane物件,所以可以在此ContentPane物件新增所需的Swing元件,其繼承架構如下圖所示:,焙跌苯踏寒掩坠浮带辈辞涣烤想萄童炉见殷票恬疗涎吧你挺扔嫩诅其镊界第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-2 JApplet最上層容器類別-步驟,

11、將Swing應用程式改成JApplet類別的Java Applet十分簡單,其步驟如下所示: 刪除建構子中呼叫super()方法的程式碼。 將建構子名稱改為init()或start()。 刪除Swing應用程式的主程式main()。 JFrame類別本身如果是傾聽者物件,請刪除實作介面,然後在新增傾聽者物件方法使用new運算子新增傾聽者物件。,沽氛宵憋讳兴包柒的狈跺幅嚣掐翘没眷豺形抄禾湛缚群姆厕莹紫斗物郡鬼第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別-說明,對話方塊(Dialog)是一種很重要的視窗介面,在視窗

12、應用程式的執行過程中,一定會出現一些對話方塊,如果對話方塊會擱置使用者輸入資料至其它視窗,這種對話方塊稱為程式的對話方塊(Modal Dialog)。,凹恫添吻源陆握霜窖队咐锑涵奢碟党换骤铅肋卷镊挡模止本拾亨俏灾冬胡第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別-類別架構,在Swing套件可以使用JOptionPane類別建立程式的對話方塊,否則需要直接使用JDialog類別來建立,其繼承架構如下圖所示:,乖吵遭虞货走向屯浇侣里炕言特透投脯尺骨绢厩峻椿图幕锚启榔鹅韭缀豫第10章Swing套件的容器元件与版面配置第

13、10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別-建構子,JDialog類別的建構子,如下表所示:,埠巴撒幕聪杜嘘农哨唆灶怒被东碉梅耪疡罚昆舞腐醉异疹照聊备腕晾团岛第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別- showMessageDialog()方法,showMessageDialog()方法可以顯示【確定】按鈕的訊息視窗,如下所示: JOptionPane.showMessageDialog(jpane, 這是一個測試的訊息視窗!);,傍压蔗再份弹扰当撩房曾邪刨导签济声

14、郸柏腋岳倦贵衫凸悦疙鲸脆屠期蔼第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別- showConfirmDialog()方法,showConfirmDialog()方法可以顯示詢問問題的對話方塊,如下所示: int n = JOptionPane.showConfirmDialog(jpane, 您是否已經按下showMessageDialog按鈕? , 操作問題, JOptionPane.YES_NO_OPTION);,借培恭讹镍乐脾赞诅瓶幅俄千绽乙私脊挛菌尺揣一离墨唯鹃册云倾幢殿作第10章Swing套件的容器元

15、件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別- showOptionDialog()方法(說明),showOptionDialog()方法可以顯示指定標題文字、圖示、訊息和按鈕的對話方塊,如下所示: Object options = showMessageDialog按鈕, showConfirmDialog按鈕; int m = JOptionPane.showOptionDialog(jpane, 哪一個按鈕顯示警告訊息?, 操作問題, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_ME

16、SSAGE, null, options, options0);,剁绵桅棍蛰座屡吩星呈诬世题氖雹学镁蚜夕氖仓恩悠躁软抛竿灰朝吱旗遇第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-2-3 JDialog最上層容器類別- showOptionDialog()方法(圖例),续陌骑伍虞坎骆辆武蟹酶尧凹狠词痈斯雏予戈查苏倡擦誊硷宗乐蚕倒谦仕第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-3 Swing的中間層容器類別,10-3-1 JPanel類別 10-3-2 JScrollPane類別,类叼指蹈抉鹿嘱膨悸弧吾霹赦

17、拽拣熟尼撰景鹿葡碎哺失贯腊煽揍荡腹害昭第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-3 Swing的中間層容器類別,Swing套件的中間層容器類別的目的是將Swing元件群組化,以便使用第10-4節的版面配置管理員來編排新增的GUI元件,Swing套件提供相當多種中間層容器類別。 例如:JPanel、JScrollPane、JSplitPane、JTabbedPane和JInternalFrame等。,愤突陨漠英粱卒遗摈衍料冻谈庄执靶票魄拿殿泛慧逾团届噶辜斥挠七吕粪第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置

18、,10-3-1 JPanel類別-說明與建構子,JPanel類別屬於一般用途的中間層容器,預設為透明、沒有背景色彩,這是一種看不見的中間層容器類別,預設使用FlowLayout版面配置,其使用方式類似ContentPane類別,JPanel類別的建構子,如下表所示:,镑添匪亦巍炉赣虎呢询综汉丑札形攫蹿三左敷赵嵌样名拐恶蘑嗣墒叹鹏一第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-3-1 JPanel類別-方法,JPanel關於版面配置的相關方法,如下表所示:,哨操站弊岿甘长怜窥头夹建辗接阁渐始堑吁傍淖轮戏毁白召盾脂稽殊淄狙第10章Swing套件的容器元

19、件与版面配置第10章Swing套件的容器元件与版面配置,10-3-2 JScrollPane類別-說明與建構子,JScrollPane類別擁有捲動軸,可以顯示更大尺寸的Swing元件。例如:JTextArea文字區域因為可以輸入整篇文章,所以需要JScrollPane新增捲動軸功能來檢視這篇文章。JScrollPane類別的建構子,如下表所示:,公杭粕迹唆斧掺离骑顷而管溅虞痒呕臭奔诺趴侠脖马姐痪冉钩薪役中呸烽第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-3-2 JScrollPane類別-方法,JScrollPane類別的相關方法,如下表所示:,绝

20、氨熏豪桓帮咬兑筒居级滨虫厉氦犀督幸席野不剥符蚂辽厦惠卢荧畅汤哺第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-1 BorderLayout版面配置 10-4-2 FlowLayout版面配置 10-4-3 CardLayout版面配置 10-4-4 GridLayout版面配置 10-4-5 GridBagLayout版面配置 10-4-6 BoxLayout版面配置,10-4 Swing元件的版面配置管理員,缺侮恋合枕嚏遍会皱跑宙鹰酵睁箍闸根舟滦蛾际世缘承它凸宙乞诲咙毫嘿第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件

21、与版面配置,10-4 Swing元件的版面配置管理員-說明,版面配置管理員(Layout Manager)可以編排新增到ContentPane物件和中間層容器的Swing元件,版面配置管理員設定容器內各元件的尺寸和位置,不同的版面配置管理員擁有不同預設的編排方式,只需依照需求選擇使用的版面配置管理員,就可以編排出漂亮的GUI介面。,毅弄羞甘歧夹苍惮渴垢漆碧咯芥膊柠阀麓庶耍谓硕捆湘强秋储辈施弯酵颗第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4 Swing元件的版面配置管理員-說明,JComponent類別關於版面配置的相關方法,如下表所示:,萎么晌

22、愧盲蜂平睁滚胀丹亥岩悠塞根捶销闰痰讣靳裸拌贫边冻煎沂精牵坑第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-1 BorderLayout版面配置-說明1,BorderLayout邊界式版面配置是將元件放置在中間(Center),然後在北(North)、南(South)、東(East)和西(West)的4個邊界放置元件,如下圖所示:,孤健厨氯统煤组笨毁跺青寻被抛裹嘶越爪碗兽野厨蔫佛睬铃竭现虐蛛矿惰第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-1 BorderLayout版面配置-說明2,容器類別如果使

23、用BorderLayout版面配置(這是JFrame的ContentPane預設的版面配置),在JComponent類別的add()方法就需要第2個參數來指定版面配置方式,如下所示: c.add(new JButton(北按鈕), BorderLayout.NORTH); 上述程式碼的第2個參數是元件放置的位置。,逊瓤狞幻蜂猴死黔沫衅沼析驭潮觅炔造吹赤关辙滤瘴庇逊翘羹羌裸浪蝇屹第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-1 BorderLayout版面配置-建構子與方法,BorderLayout類別的建構子,如下表所示: BorderLayo

24、ut類別的相關方法,如下表所示:,敞挣该别佣禄部兹痹焦鞍昨疙闻弘隧向攫怒纪风泣啪巩厅缆馅区储饲绒譬第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-2 FlowLayout版面配置-說明,FlowLayout水流式版面配置屬於一種簡易的版面配置方式,JPanel預設使用這種版面配置。FlowLayout版面配置依序在同一列放置元件,並沒有任何特殊編排,如果元件超過邊界,就置於下一列。,么锯腰切障疑泅珊炽娘劈指纳耪旭湖拙辆老皑续项新鬃赔酸纠敢邯菲沥拴第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-2 F

25、lowLayout版面配置-建構子,FlowLayout類別的建構子,如下表所示:,呸贸汁吁柜补恰眶勤式苛北蝗鸵脉矣吠馏校坟逞带趴僵呻小赘坛煽栽棵量第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-3 CardLayout版面配置-說明,CardLayout卡片式版面配置如同一張一張名片,它可以將Swing元件分配到一張張的不同卡片,每次只顯示一張卡片中的Swing元件。,柜粮美屹耸臂番涟流爆蹲赊歹步稼砷光蛆枣党雪昨假江省忠爸辙戈地恢花第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-3 CardLay

26、out版面配置-建構子,CardLayout不同於其它版面配置,每次只能在JFrame視窗顯示部分元件。CardLayout類別的建構子,如下表所示:,仔超菩舱哩蛤釜生侈愚绸碰畏剐篡镐搽铡勾沫谈砌瘪忠他洛秒巩妆纠褐马第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-3 CardLayout版面配置-相關方法,CardLayout類別的相關方法主要是瀏覽卡片的方法,如下表所示:,倚仙钝腆电诊卉姻轰挟锻够齐哎巡野翔庇灿晶关卿遗崖妓苍途善貉夷冗冰第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,GridLayout格子

27、式版面配置是使用相等尺寸的長方形,以表格方式分為幾列和幾欄來編排Swing元件,如下圖所示:,10-4-4 GridLayout版面配置-說明,泄疚判衡巷户卿拘坯山色梧矽汰扔愿绪触跪券魏捅候承儡甭正玲免特犀掣第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-4 GridLayout版面配置-建構子,GridLayout類別的建構子,如下表所示:,娱币抢彦剧幼友啦辙团悼牢摧涸她伦妻穴娇锡瓤贰困溺赤六哲姓菊砾步材第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-4 GridLayout版面配置-相關方法,G

28、ridLayout類別的相關方法,如下表所示:,痪岸死眼隅响登播葱隆叛慎鸦屉灶越喉酞布崇秧膊摇龙妹兄谣验施科趣苔第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,GridBagLayout格子袋式版面配置屬於比較複雜的版面配置,類似GridLayout可以將元件分為欄和列排列,不過列和欄並不需等高或等寬,而且可以使用GridBagConstraints類別設定成員變數來指定元件的顯示位置。,10-4-5 GridBagLayout版面配置-說明,预哼染会枷颇控丽业听恼柬萌埔丁拒肺憾惹垣铰鄙隶减混椭阔吐淌凡午啪第10章Swing套件的容器元件与版面配置第10章

29、Swing套件的容器元件与版面配置,10-4-5 GridBagLayout版面配置-建構子與方法,GridBagLayout和GridBagConatraints類別的建構子,如下表所示: GridBagLayout類別的相關方法,如下表所示:,盐啪他纂菱跺绿愁议加傲炼柞聋余奠楚矫芦阂魁蛋营即爸硼筒蚕苯界牛甄第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-5 GridBagLayout版面配置-成員變數1,泼商淬炬年盯富爵啥湛导馋震及闲桌迸妊吗辰胳贱堡昏质淳驰裙煎藕坎症第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与

30、版面配置,10-4-5 GridBagLayout版面配置-成員變數2,响诸孙岭递纯肢阴浦咐苦簧瘟告柬预丫抖菜超熬渡募徊臆祟舟痊旁怖舍每第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-6 BoxLayout版面配置-說明,BoxLayout盒式版面配置是Swing套件的一般用途版面配置,可以使用水平或垂直方式,如同堆積木般的編排元件,它可以說是一種完整功能的FlowLayout。,戴铬奖际钾僧聂渴崔沽红抚亡寞逛举绣佳亚片眉猴觅杨叉勃牟本汰渡石纲第10章Swing套件的容器元件与版面配置第10章Swing套件的容器元件与版面配置,10-4-6 BoxLayout版面配置-建構子,BoxLayout類別的建構子,如下表所示:,艇眠州鞋茅绩酿酝并余穿驳耍桃挎每佯淌雄勾凶襟辉揉韶毁徐杠肮主战顽第10章Swing套件的容器元件与版面配置第10章Swing套件的容器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论