資源描述:
《《圖形用戶界面編程》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第九章圖形用戶界面編程計(jì)算機(jī)網(wǎng)絡(luò)與多媒體研究所計(jì)算機(jī)科學(xué)與技術(shù)、軟件學(xué)院浙江工業(yè)大學(xué)高家全Cell:13588097481Email:springf12@163.com前言本章的目的:圖形用戶界面(GUI)程序包括哪些元素?如何開發(fā)圖形用戶界面程序?如何讓界面上的按鈕、下拉框、樹等響應(yīng)鼠標(biāo)、鍵盤等?回顧關(guān)鍵詞:字節(jié)流(InputStreamOutputStream)、字符流(ReaderWriter)、File、對(duì)象序列化(java.io.Serializable)、java中的字符編碼(UnicodeUTF-8UTF-16)小節(jié)安排圖形用戶界面編
2、程9.3、菜單和工具條9.5、組件常用方法9.1、AWT與Swing9.2、容器:JFrameJPanelJScrollPaneJSplitPane9.6、布局管理器9.7、事件處理模型9.4、基本組件:JLabelJButtonJComboBoxJTree等9.8、鼠標(biāo)事件處理9.9、事件適配器類9.10、鍵盤事件處理9.1.1、AWT和SwingAWT(AbstractWindowingToolkit)是Java早期(JDK1.0)的GUI標(biāo)準(zhǔn)API重量級(jí)組件在90年代,程序員中流傳著一個(gè)笑話:Java的真正信條是"一次編寫,到處測試(Wri
3、teOnce,TestEverywhere)"。導(dǎo)致這種糟糕局面的一個(gè)可能原因據(jù)說是AWT從概念產(chǎn)生到完成實(shí)現(xiàn)只用了一個(gè)月。importjava.awt.Frame;importjava.awt.Color;publicclassTestAWTextendsFrame{publicTestAWT(Stringstr){super(str);}publicstaticvoidmain(Stringargs[]){TestAWTfr=newTestAWT("HelloAWTFrame!");//設(shè)置Frame的大小,缺省為(0,0)fr.setSize(400,
4、300);//設(shè)置Frame的背景為紅色fr.setBackground(Color.red);//設(shè)置Frame為可見,缺省為不可見fr.setVisible(true);}}9.1.2、AWT和SwingJava1.2開始,AWT被Swing替代Swing包含的組件的平臺(tái)相關(guān)性較小,所以稱為輕量級(jí)組件所在的包:javax.swing由100%純java實(shí)現(xiàn)的(a)Linux下(b)MacOS下(c)Windows下同樣的java代碼在不同操作系統(tǒng)下的表現(xiàn)9.1.2、AWT和Swing9.1.2、AWT和Swing小節(jié)安排圖形用戶界面編程9.3、菜單和工具
5、條9.5、組件常用方法9.1、AWT與Swing9.2、容器:JFrameJPanelJScrollPaneJSplitPane9.6、布局管理器9.7、事件處理模型9.4、基本組件:JLabelJButtonJComboBoxJTree等9.8、鼠標(biāo)事件處理9.9、事件適配器類9.10、鍵盤事件處理9.2.1、JFrame9.2.1、JFrame/*我的第一個(gè)java窗口程序,采用直接在main中創(chuàng)建窗口的方法*/importjava.awt.event.*;importjavax.swing.*;publicclassTestJFrameDi
6、rect{}聲明實(shí)例變量或類變量定義實(shí)例方法或類方法定義實(shí)例方法或類方法……9.2.1、JFrame/*我的第一個(gè)java窗口程序,采用直接在main中創(chuàng)建窗口的方法*/importjava.awt.event.*;importjavax.swing.*;publicclassTestJFrameDirect{//**********************************************************//以下為成員變量(對(duì)象)的定義//定義菜單staticJMenuBarmb=newJMenuBar();//菜單欄staticFg
7、MenumFile=newFgMenu("文件(F)",KeyEvent.VK_F);//"文件"菜單staticJMenuItemmiNew=newJMenuItem("新建(N)",KeyEvent.VK_N),miOpen=newJMenuItem("打開(O)...",KeyEvent.VK_O),miSave=newJMenuItem("保存(S)",KeyEvent.VK_S),miFont=newJMenuItem("字體與顏色(F)...",KeyEvent.VK_F),miQuit=newJMenuItem("退出(X)",KeyEvent
8、.VK_X);//*****************