freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語程序設(shè)計(jì)java(已修改)

2024-10-14 10:52 本頁面
 

【正文】 西南科技大學(xué)網(wǎng)絡(luò)教育系列課程 高級(jí)語程序設(shè)計(jì) (Java) 第十章 基于 Swing的圖形用戶界面設(shè)計(jì) 高級(jí)語言程序設(shè)計(jì) (Java) AWT組件與 SWING組件概述 ? Java在初期借助一種窗口開發(fā)類庫,叫作AWT(Abstract Windows Toolkit,抽象窗口工具箱 )來達(dá)到在圖形接口上平臺(tái)獨(dú)立性。 ? AWT處理用戶界面元素的方法 ? 把用戶界面元素的創(chuàng)建和行為委托給目標(biāo)平臺(tái) (Windows、Macintosh、 Linux等 )上的本地GUI工具 (Peers, 對(duì)等組件 )進(jìn)行處理。 ? Peers是本地 GUI組件,由AWT來操控, Peers對(duì)程序開發(fā)者是隱而不見的,各平臺(tái)所產(chǎn)生的 peers與各平臺(tái)有關(guān) 。 Java程序 Java AWT 本地窗口系統(tǒng) Peers 顯示 高級(jí)語言程序設(shè)計(jì) (Java) ? 重量組件和輕量組件 ? 與本地對(duì)等組件相關(guān)聯(lián)的組件 (AWT組件 )就被稱為重量組件。 ? 不依賴本地對(duì)等組件的組件 (Swing組件 )就被稱為輕量組件。 ? 重量組件具有平臺(tái)不一致性。 ? 輕量組件在重量容器的窗口中繪制,背景可以是透明的。 高級(jí)語言程序設(shè)計(jì) (Java) ? AWT與 Swing AWT ? 粗糙、不美觀 ? 平臺(tái)不一致,?一次編寫,到處調(diào)試? ? 運(yùn)行效率較低,不適合復(fù)雜界面的程序 ? 開發(fā)速度較快 Swing ? 更豐富、更方便的用戶界面元素集合 ? 對(duì)底層平臺(tái)的依賴更少,和平臺(tái)有關(guān)的 bug也就更少 ? 給不同平臺(tái)上的用戶一致的感覺 ? swing組件大部分是輕量組件,沒有對(duì)等組件 ? Swing并沒有完全代替 AWT 高級(jí)語言程序設(shè)計(jì) (Java) JComponent類的部分子類以及 JFrame類和 JDialog類 Container JFrame JDialog Window Frame Dialog JComponent JButton JTextField JTeatArea JTree JPanel JTable Component JComponent(輕組件)類是 Container類的一個(gè)直接子類、 Compone類的一個(gè)間接子類。 JFame類和 JDialog類分別是 Frame類和 Dialog類的直接子類、 Window類的間接子類。 高級(jí)語言程序設(shè)計(jì) (Java) ? 兩個(gè)基本概念 ? 組件 (ponent): Java把由 Component類的子類或間接子類創(chuàng)建的對(duì)象稱為一個(gè)組件,是圖形用戶界面中的可見部分,如按鈕、標(biāo)簽。 ? 容器 (container): Java把由 Container的子類或間接子類創(chuàng)建的對(duì)象稱為一個(gè)容器,是圖形用戶界面中容納其它組件的部分,如窗體。 ? 一個(gè)容器中可容納一個(gè)或多個(gè)組件,也可容納其他容器。 高級(jí)語言程序設(shè)計(jì) (Java) ? 認(rèn)識(shí)幾個(gè)方法 ? add( ): 將組件添加到該容器中。 ? removeAll() : 移掉容器中的全部組件。 ? remove(Component c) 移掉容器中參數(shù)指定的組件。 ? validate(): 每當(dāng)容器添加新的組件或移掉組件時(shí),調(diào)用該方法以保證容器中的組件能正確顯示出來。 高級(jí)語言程序設(shè)計(jì) (Java) ?組件的三要素 ? 內(nèi)容,如按鈕的狀態(tài)、文本框中的文本 ? 外觀顯示,如組件的顏色、大小、可見性 ? 行為,組建對(duì)外部刺激 (事件 )的反應(yīng) ? 三要素之間的是相互關(guān)聯(lián)的,如按鈕組件 按鈕狀態(tài) 按鈕外觀 按鈕觀感 外部事件 按鈕行為 高級(jí)語言程序設(shè)計(jì) (Java) ? Swing的結(jié)構(gòu) ? Swing采用 MVC(模型 視圖 控制 )設(shè)計(jì)模式 ? MVC的基本思想就是將一個(gè) GUI組件分成三個(gè)部分: 模型部分 — 存儲(chǔ)內(nèi)容 (完整的 ) 視圖部分 — 顯示內(nèi)容 (完整或不完整的 ) 控制部分 — 處理用戶事件 ? 模型必須實(shí)現(xiàn)改變和發(fā)現(xiàn)內(nèi)容的方法 ? 模型是完全不可見的,顯示存儲(chǔ)在模型中的數(shù)據(jù)是視圖的工作,控制決定是否把外界的事件轉(zhuǎn)化成對(duì)模型或視圖的改變 高級(jí)語言程序設(shè)計(jì) (Java) ? 例:用戶在文本框中進(jìn)行字符輸入 按下字符鍵 控制器調(diào)用模型中的“插入字符”命令 改變文本框組件的內(nèi)容 模型通知視圖進(jìn)行更新 視圖改變了 ? 例:用戶在文本框中按下了光標(biāo)鍵 按下光標(biāo)鍵 控制器通知視圖進(jìn)行滾動(dòng) 改變文本框組件的外觀 對(duì)文本不會(huì)有任何影響 模型不會(huì)有改變 高級(jí)語言程序設(shè)計(jì) (Java) ? 每個(gè)組件都有一個(gè)包裝類 (如 JButton),用來保存模型和視圖。 ? 在 250個(gè)類,而其中有接近 50個(gè)組件類 (以 J打頭 )。 ? ? JApplet、 JFrame、 JDialog和 JComponent。 ? JFrame、 JApplet、 JDialog都是重組件 ? swing包是屬于 Java基礎(chǔ)類 (Java Foundation Classes, JFC)的一部分。 高級(jí)語言程序設(shè)計(jì) (Java) JFrame窗體 ? JFrame的特性 ? JFrame類其子類創(chuàng)建的對(duì)象是窗體。 ? JFrame類或子類創(chuàng)建的對(duì)象是重量容器。 ? 不可以把組件直接添加到 JFame窗體中,應(yīng)當(dāng)把組件添加到內(nèi)容面板中。 ? 不能為 JFame窗體設(shè)置布局,應(yīng)為 JFame窗體的內(nèi)容面板設(shè)置布局。 ? JFame窗體通過調(diào)用 getContentPane()方法得到它的內(nèi)容面板。 高級(jí)語言程序設(shè)計(jì) (Java) JMnuBar ContentPane JFame窗體的基本結(jié)構(gòu) 高級(jí)語言程序設(shè)計(jì) (Java) ? JFrame類常用方法: ? 構(gòu)造方法 ? JFrame() :可以創(chuàng)建一個(gè)無標(biāo)題的窗口。 ? JFrame(String s) :創(chuàng)建一個(gè)標(biāo)題為 s的窗口。 ? 常用方法 ? public void setBounds(int a,int b,int width,int height) 窗口調(diào)用該方法可以設(shè)置出現(xiàn)在屏幕上時(shí)的初始位置是 (a,b),即距屏幕左面 a個(gè)像素、距屏幕上方 b個(gè)像素;窗口的寬是 width,高是height。 高級(jí)語言程序設(shè)計(jì) (Java) ? public void setSize(int width,int height): 設(shè)置窗口的大小,窗口在屏幕出現(xiàn)是默認(rèn)位置是 (0,0)。 ? public void setVisible(boolean b): 設(shè)置窗口是可見還是不可見,窗口默認(rèn)是不可見的。 ? public void setResizable(boolean b): 設(shè)置窗口是否可調(diào)整大小,窗口默認(rèn)是可調(diào)整大小的。 高級(jí)語言程序設(shè)計(jì) (Java) ? public void setDefaultCloseOperation(int operation) :設(shè)置單擊窗體右上角的關(guān)閉圖標(biāo)后,程序會(huì)做出怎樣的處理。 其中的參數(shù) operation取下列有效值: ? DO_NOTHING_ON_CLOSE: 什么也不做。 ? HIDE_ON_CLOSE: 隱藏當(dāng)前窗口。 ? DISPOSE_ON_CLOSE: 隱藏當(dāng)前窗口,并釋放窗體占有的其它資源。 ? EXIT_ON_CLOSE: 結(jié)束窗體所在的應(yīng)用程序。 高級(jí)語言程序設(shè)計(jì) (Java) 菜單組件 ? Swing菜單由菜單條 (JMenuBar)、 菜單 (JMenu)和菜單項(xiàng) (JMenuItem)構(gòu)成。 ? 菜單條是所有菜單和菜單項(xiàng)的根 (容器 )。 ? 需要注意的是,只能向窗口添加一個(gè)菜單條 ? JMenuBar 菜單條 ? JMenuBar是 JComponent類的子類,負(fù)責(zé)創(chuàng)建菜單條。 ? JMenuBar menuBar=new JMenuBar()。 ? 將菜單條放置到 JFrame窗口中: public void setJMenuBar(JMenuBar menubar)。 高級(jí)語言程序設(shè)計(jì) (Java) ? JMenu 菜單 ? JMenu是 JComponent類的間接子類,負(fù)責(zé)創(chuàng)建菜單。 ? pulbic JMenu(): 建立一個(gè)沒有標(biāo)題的菜單。 ? pulbic JMenu(String s): 建立一個(gè)指定標(biāo)題菜單,標(biāo)題由參數(shù) s確定。 ? 例如: 創(chuàng)建一個(gè)名為? Edit”的菜單,并添加到菜單條中。 JMenu editMenu=new JMenu(“Edit”)。 (editMenu)。 高級(jí)語言程序設(shè)計(jì) (Java) ? 常用方法 ? public void add(MenuItem item): 向菜單增加由參數(shù) item指定的菜單選項(xiàng)對(duì)象。 ? public void add(String s): 向菜單增加指定的選項(xiàng)。 ? public JMenuItem getItem(int n): 得到指定索引處的菜單選項(xiàng)。 ? public int getItemCount(): 得到菜單選項(xiàng)數(shù)目。 高級(jí)語言程序設(shè)計(jì) (Java) ? JMenuItem 菜單項(xiàng) ? JMenu是 JComponent類的間接子類,負(fù)責(zé)創(chuàng)建菜單項(xiàng)。 ? public JMenuItem(String s): 構(gòu)造有標(biāo)題的菜單項(xiàng)。 ? public JMenuItem(String text, Icon icon):構(gòu)造有標(biāo)題和圖標(biāo)的菜單項(xiàng)。 ? 創(chuàng)建圖標(biāo)對(duì)象 Icon icon=new ImageIcon(“圖標(biāo)文件名? )。 ? 菜單項(xiàng)將被放在菜單里。例如: JMenuItem pasteItem=new JMenuItem(“Paste”)。 (pasteItem)。 高級(jí)語言程序設(shè)計(jì) (Java) ? 主要方法 ? public void setEnabled(boolean b): 設(shè)置當(dāng)前菜單項(xiàng)是否可被選擇 ? public String getLabel():得到菜單選項(xiàng)的名字。 ? public void setAccelerator(KeyStroke keystroke): 為菜單項(xiàng)設(shè)置快捷鍵。 ? public static KeyStroke getKeyStroke(int keyCode, int modifiers) :返回 KeyStroke對(duì)象。 keyCode取值范圍: ~ modifiers取值: InputEvent .CTRL_MASK InputEvent .SHIFT_MASK 高級(jí)語言程序設(shè)計(jì) (Java) ? 嵌入 JMenu子菜單 ? 菜單項(xiàng)本身還可以是一個(gè)菜單,稱這樣的菜單項(xiàng)為子菜單。 JMenu editMenu = new JMenu(“Edit”)。 JMenu optionsMenu = new JMenu(“Options”)。 (optionsMenu)。 高級(jí)語言程序設(shè)計(jì) (Java) ? 作用 ? 指定各個(gè)視圖組件在窗口中的分布位置,實(shí)現(xiàn)動(dòng)態(tài)布局。 ? 有助于創(chuàng)建復(fù)合式的復(fù)雜界面,一個(gè)復(fù)合式界面由一些簡(jiǎn)單的基本界面組成。 ? 優(yōu)點(diǎn) ? 可重用性:基本界面可以被重用,組合成各種不同的復(fù)合式界面。 ? 可擴(kuò)展性:可以方便的擴(kuò)展基本界面,從而創(chuàng)建更復(fù)雜的界面。 ? 可維護(hù)性 : 當(dāng)復(fù)合式界面中的局部區(qū)域發(fā)生變化時(shí) ,不會(huì)影響其它區(qū)域 。 布局設(shè)計(jì) 高級(jí)語言程序設(shè)計(jì) (Java) ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1