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