資源描述:
《java面向?qū)ο蟪绦蛟O(shè)計(jì)第10章_swing圖形用戶界面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第10章JavaSwing圖形用戶界面主講:趙建邦辦公室:信息學(xué)院202E-mail:zhaojianbang@nwsuaf.edu.cn本章主要內(nèi)容10.1java.swing概述10.2窗口10.3文本組件10.4按鈕與標(biāo)簽10.5選擇性組件10.6布局管理器10.7中間容器10.8事件處理10.9界面開發(fā)難點(diǎn):事件處理10.1JavaSwing概述JFC(JavaFoundationClasses)Java基礎(chǔ)類庫是一個(gè)圖形框架,由以下三部分組成:AWT(AbstractWindowToolkit)Java抽象窗口工具包SwingJava2DAPI(圖形、圖像、顏色、文本等)發(fā)
2、展歷史Java1.0的出現(xiàn)帶來了抽象窗口工具箱(AWT)網(wǎng)景通訊公司Netscape開發(fā)了InternetFoundationClasses,簡稱:IFC,并聯(lián)合Javasoft,在Java1.2推出了Swing早期稱java包為核心庫,稱javax包為擴(kuò)展庫,后來某些javax包也發(fā)展成了核心庫,如javax.swing10.1JavaSwing概述組件(Component)和容器(Container)在Java中,頂層窗口稱為框架。在AWT庫中,對應(yīng)于框架的類是Frame,在Swing庫中,相應(yīng)的類是JFrame。JFrame類擴(kuò)展了Frame類。大部分AWT組件在Swing中都
3、有等價(jià)的組件,它們在表示形式上差一個(gè)“J”框架(JFrame)是一個(gè)容器,我們可以向容器中添加組件圖10.1:組件類繼承關(guān)系通常把AWT控件稱為重量級控件,把Swing控件稱為輕量級控件10.1JavaSwing概述容器(Container)容器是一種比較特殊的組件,它可以包含其他的組件。我們可以把組件放在組件容器中。反之,如果一個(gè)組件不是組件容器,則其中不能包含其他的組件組件(Component)組件是有具體圖形表示并能在屏幕上顯示以和用戶進(jìn)行交互的一類對象。JFrame、JPanel這類輕量級容器也是組件10.1JavaSwing概述javax.swing包中的組件包括兩種:底層
4、容器組件JFrameJDialogJWindowJApplet輕量級組件JComponent的子類:JButton、JTree、JMenubar、JTextField等Swing組件繼承關(guān)系10.2窗口底層容器的作用:底層容器用于直接顯示到系統(tǒng)平臺(tái)上,其它組件被添加到底層容器上JFrame(窗口)是一個(gè)底層容器不允許將一個(gè)窗口添加到另一個(gè)容器中JFrame構(gòu)造方法JFrame()創(chuàng)建一個(gè)無標(biāo)題的窗口JFrame(Stringtitle)創(chuàng)建標(biāo)題為title的窗口10.2.1JFrame常用方法例10.1框架外觀的設(shè)置設(shè)置具有以下特征的框架:它的高度和寬度為整個(gè)屏幕的1/3;自定義窗口
5、的標(biāo)題和圖標(biāo);窗口的大小不可變。程序代碼見FrameSizeSet.java。運(yùn)行結(jié)果如下:10.2.1JFrame常用方法JFrame類直接從Frame繼承而來。對于框架外觀的操作比較重要的方法如下:setIconImage——窗口最小化(在Java中稱為圖標(biāo)化)時(shí),把一個(gè)Image對象用作圖標(biāo)。setTitle——設(shè)置窗口中標(biāo)題欄的文字。setResizable——設(shè)置用戶是否可以改變框架大小。dispose方法——關(guān)閉窗口,并回收該窗口的所有資源。setLocation——設(shè)置組件的位置。setBounds——重新設(shè)置組件的大小和位置10.2.1JFrame常用方法JFrame
6、包含了四個(gè)窗格:RootPane、LayeredPane、GlassPane和ContentPane。如果需要將一些圖形用戶界面元素加入到框架中,我們需要在面板組件(JPanel)中進(jìn)行繪制,然后將該面板組件加入到框架的內(nèi)容窗格(ContentPane)中。相應(yīng)的代碼如下://得到JFrame的內(nèi)容窗格對象ContainercontentPane=getContentPane();Componentc=newComponent();//Component代表各種控件類//將組件加入到內(nèi)容窗格中contentPane.add(c);面板JPanel類本身是容器,它可以容納其他圖形用戶界
7、面元素,如按鈕、菜單等。1110.2.2菜單條、菜單、菜單項(xiàng)典型的菜單:10.2.2創(chuàng)建菜單的步驟創(chuàng)建菜單欄、菜單、子菜單、菜單項(xiàng)將菜單項(xiàng)加入到子菜單或菜單中將子菜單加入到菜單中將菜單加入到菜單欄中//(a)創(chuàng)建菜單欄,并將菜單欄加入到框架中。JMenuBarmenuBar=newJMenuBar();setJMenuBar(menuBar);//(b)創(chuàng)建“File”菜單、“Edit”菜單和“View”菜單。JMenufileMenu=newJMenu(