第十四講JavaGUI編程之一_第1頁
第十四講JavaGUI編程之一_第2頁
第十四講JavaGUI編程之一_第3頁
第十四講JavaGUI編程之一_第4頁
第十四講JavaGUI編程之一_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1第十四講JavaGUI編程之一基本要求1.了解JavaGUI2.掌握Swing的特性及其類層次結(jié)構(gòu),Swing程序的一般結(jié)構(gòu)3.掌握Swing常用容器組件2一、了解GUIGUI(graphicuserinterface)是圖形用戶界面。在GUI中,用戶可以看到什么就操作什么,取代了以往字符方式下知道是什么后才能操作的方式,極大地方便了用戶對計算機的操作,GUI現(xiàn)在已經(jīng)成為當(dāng)前的編程標(biāo)準(zhǔn)。Java提供了AWT(AbstractWindowToolkit,抽象窗口工具包)和Swing兩個圖形用戶界面工具包,IBM公司制定無任何依賴、低層的圖形庫SWT(StandardWidgetToolkit);Jface框架將SWT進(jìn)行了封裝,更易于使用。但SWT和JFace僅在Eclipse上提供。3二、了解AWT,SWing容器類,JFrame,JPanel,JAppletUI組件類,JButton等幫助類等AWT(AbstractWindowToolkit)包括了很多類和接口,用于JavaApplication的GUI編程。Swing組件繼承AWT,純JAVA.Swing組件是Java語言提供的第二代GUI設(shè)計工具包,它以AWT為基礎(chǔ),在AWT內(nèi)容的基礎(chǔ)上新增或改進(jìn)了一些GUI組件,使得GUI程序功能更強大,設(shè)計更容易、更方便4(1)AWT的類層次結(jié)構(gòu)ObjectAWTEventFontFlowLayoutBorderLayoutCardLayoutGridLayoutGridBagLayoutComponentButtonCanvasCheckboxContainerChoiceLabelListTextComponentScrollbarPanelScrollPaneWindowAppletDialogFrameTextAreaTextFieldMenuComponentGraphicsMenuBarMenuItemMenuCheckBoxMenuItemPopupMenuToolKitJMenuGraphics2D5(2)Swing組件的層次結(jié)構(gòu)6三、深入理解GUI編程

無論使用任何語言設(shè)計GUI圖形用戶界面時,都有用于放置可視化組件的主窗口,即用來放置其他組件的組件,如Windows窗口中的主窗體。通常這類組件稱為Container容器,其主要作用就是將組件組合在一起。容器可以分為兩類,頂層容器和中間容器。7(1)頂層容器

頂層容器是進(jìn)行圖形編程的基礎(chǔ),一切圖形化的東西,都必然包括在頂層容器中。頂層容器是任何圖形界面程序都要涉及的主窗口,是顯示并承載組件的容器組件。在Swing中,我們有三種可以使用的頂層容器,它們分別是:JFrame、JDialog和JApplet。(類似于地基)JFrame:用于框架窗口的類,此窗口帶有邊框、標(biāo)題、用于關(guān)閉和最小化窗口的圖標(biāo)等。帶GUI的應(yīng)用程序通常至少使用一個框架窗口。JDialog:用于對話框的類。JApplet:用于使用Swing組件的JavaApplet的類。8(a)JFrameJFrame是放置其他Swing組件的頂級容器,相當(dāng)于Windows窗口中的主窗體。該組件用于在Swing程序中創(chuàng)建窗體,JFrame類繼承了AWT的Frame類,支持Swing體系結(jié)構(gòu)的高級GUI屬性。JFrame用來設(shè)計類似于Windows系統(tǒng)中的窗口形式的界面。JFrame類的常用構(gòu)造方法如表構(gòu)造方法名稱概述JFrame()構(gòu)造一個初始時不可見的新窗體。JFrame(Stringtitle)創(chuàng)建一個新的、初始不可見的、具有指定標(biāo)題的JFrame。9例1classdemo{

publicstaticvoidmain(Stringargs[]){JFrameframe=newJFrame("ddd");

frame.setSize(400,300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}//思考,如何才能使得Jframe居中進(jìn)行顯示???//參考setLocationRelativeTo方法10例2publicclassdemoextendsJFrame{demo(){super("ddd");//this.setTitle(“ddd”);

this.setSize(400,300);

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setVisible(true);

}publicstaticvoidmain(String[]args){demod=newdemo();

}

}//對比這兩種方式的區(qū)別???11(b)JDialogJDialog對話框相對于AWT的Dialog對話框來說,屬于增強型對話框。JDialog對話框和JFrame對話框一樣,都屬于頂層容器,可以單獨顯示。JDialog是創(chuàng)建對話框窗口的主要類??梢允褂么祟悇?chuàng)建自定義的對話框。該類繼承了AWT的Dialog類,支持Swing體系結(jié)構(gòu)的高級GUI屬性。12JDialog常用構(gòu)造方法JDialog(owner)JDialog(owner,Booleanmodal)JDialog(owner,Stringtitle)JDialog(owner)JDialog(owner,Booleanmodal)JDialog(owner,Stringtitle)13例子---JDialogimportjava.awt.*;importjavax.swing.*;publicclassJDialogExampleextendsJFrame{publicJDialogExample(){Containerc=getContentPane();//獲取當(dāng)前窗口的內(nèi)容窗口

JDialogjd=newJDialog(this,"自定義增強對話框");JLabeljl=newJLabel("對話框顯示");

jd.getContentPane().add(jl);jd.setSize(100,100);jd.setVisible(true); setTitle("帶有對話框的JFrame程序");//設(shè)置顯示窗口標(biāo)題

setSize(400,200);//設(shè)置窗口顯示尺寸

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置窗口是否可以關(guān)閉

setVisible(true);//設(shè)置窗口是否可見

}publicstaticvoidmain(String[]agrs) { newJDialogExample(); }}14(2)中間容器

中間容器是容器組件的一種,可以承載其他組件。但中間容器不能獨立顯示,必須依附于其他的頂層容器。常見的中間容器有:JPanel、JScrollPane、JTabbedPane和JToolBar。(類似于墻體)JPanel:最靈活、最常用的中間容器。JScrollPane:與JPane類似,但還可在大的組件或可擴展組件周圍提供滾動條。JTabbedPane:包含多個組件,但一次只顯示一個組件。用戶可在組件之間方便地切換。JToolBar:按行或列排列一組組件(通常是按鈕)15JPanel是一個中間容器組件,可以向其中添加其他的GUI組件(如按鈕JButton組件);但是JPanel不是頂層容器,因此在屏幕上顯示JPanel,必須將它添加到一個頂層容器(如JFrame)中。我們可以在JPanel中放置按鈕、文本框等非容器組件,甚至可以在JPanel中再放置若干個JPanel組件。JPanel組件具有中間容器的特點,如無邊框等。JPanel的缺省布局為流式布局FlowLayout。16例:P206程序publicclassPanextendsJPanel{ publicstaticvoidmain(String[]agrs) { JFrameframe=newJFrame("JPanelDemo1"); frame.setSize(300,200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ContainercontentPanel=frame.getContentPane(); contentPanel.add(newPan()); frame.setVisible(true); } publicPan() { add(part1()); add(part2()); add(part3()); setVisible(true); } privateJPanelpart1() { JPanelpanel=newJPanel(); panel.add(newJLabel("學(xué)號:")); panel.add(newJTextField("請輸入學(xué)號.",10)); panel.setVisible(true); returnpanel; } privateJPanelpart2() { JPanelpanel=newJPanel(); panel.add(newJLabel("姓名:")); panel.add(newJTextField("請輸入姓名.",10)); panel.setVisible(true); returnpanel; } privateJPanelpart3() { JPanelpanel=newJPanel(); panel.add(newJButton("退出")); panel.add(newJButton("取消")); panel.add(newJButton("確定")); panel.setVisible(true); returnpanel; }}17練習(xí)P188頁例子注意區(qū)別JDialog與JOptionPaneJOptionPane可以直接調(diào)用產(chǎn)生,而JDialog依賴于JFrame18JOptionPane常用的對話框1.showMessageDialog

顯示消息消息對話框,可以設(shè)置消息內(nèi)容、標(biāo)題、消息的樣式、圖標(biāo)

2.showInputDialog

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論