第5講 圖形用戶界面設(shè)計

上傳人:仙*** 文檔編號:238854274 上傳時間:2024-01-11 格式:PPT 頁數(shù):114 大小:1.59MB
收藏 版權(quán)申訴 舉報 下載
第5講 圖形用戶界面設(shè)計_第1頁
第1頁 / 共114頁
第5講 圖形用戶界面設(shè)計_第2頁
第2頁 / 共114頁
第5講 圖形用戶界面設(shè)計_第3頁
第3頁 / 共114頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第5講 圖形用戶界面設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《第5講 圖形用戶界面設(shè)計(114頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、1第第5講講 圖形用戶界面設(shè)計圖形用戶界面設(shè)計主要內(nèi)容主要內(nèi)容p AWT和和Swingp容器容器p布局布局pSwing組件組件pJava圖形設(shè)計圖形設(shè)計p事件處理事件處理2AWT和和Swing組件組件AWT:AbstractWindowToolkit(抽象窗口工具集)抽象窗口工具集)圖形界面是平臺相關(guān)的;圖形界面是平臺相關(guān)的;AWT是重量級的,依賴是重量級的,依賴本地代碼實現(xiàn)。不同平臺外觀有差異,不同平臺運本地代碼實現(xiàn)。不同平臺外觀有差異,不同平臺運行行AWT程序可能有不同的程序可能有不同的bug,有違,有違java“一次編寫,一次編寫,到處運行到處運行”口號??谔枴wing:輕量級純:輕量

2、級純JAVA的圖形庫?;诘膱D形庫?;贏WT,更豐,更豐富,功能更強大。不同平臺外觀一致。富,功能更強大。不同平臺外觀一致。在在AWT組件組件的類名前加的類名前加“J”?!爸亓考壷亓考墶苯M件與組件與“輕量級輕量級”組件一同使用時,如組件一同使用時,如果組件區(qū)域有重疊,則果組件區(qū)域有重疊,則“重量級重量級”組件總是顯示組件總是顯示在上面在上面3常用的圖形組件常用的圖形組件AWT:java.awt.*Lable、Button、List、TextField.Frame、Panel、ContainerSwing:javax.swing.*JLable、JButton、JList、JTextField

3、.JFrame、JPanel不要在容器中混合使用不要在容器中混合使用AWT和和Swing組件組件4容器容器JavaJava的圖形用戶界面由的圖形用戶界面由組件組件構(gòu)成,例如按鈕構(gòu)成,例如按鈕(buttonbutton)、文本輸入框()、文本輸入框(textfieldtextfield)、)、標(biāo)簽(標(biāo)簽(labellabel)等都是組件,其中有一類特)等都是組件,其中有一類特殊的組件稱為殊的組件稱為容器容器(containercontainer),例如框),例如框架(架(frameframe)、面板()、面板(panelpanel)等。)等。容器容器是組件的容器,各種組件(包括容器)是組件的容器

4、,各種組件(包括容器)可以通過可以通過add()add()方法添加到容器中方法添加到容器中 5頂層容器頂層容器頂層(頂層(Toplevel)容器)容器所有組件都必須包含在某個容器中,而有些容器所有組件都必須包含在某個容器中,而有些容器是可以嵌套的,在這個嵌套層次的最外層,必須是可以嵌套的,在這個嵌套層次的最外層,必須是一個頂層(是一個頂層(Toplevel)容器)容器四種頂層容器四種頂層容器(Swing組件中的重量級組件)組件中的重量級組件)JFrame、JApplet、JDialog和和JwindowJFrame是一個帶有標(biāo)題行和控制按鈕(最小化、是一個帶有標(biāo)題行和控制按鈕(最小化、恢復(fù)恢復(fù)

5、/最大化、關(guān)閉)的獨立窗口,最大化、關(guān)閉)的獨立窗口,創(chuàng)建應(yīng)用程創(chuàng)建應(yīng)用程序時需要使用序時需要使用JFrame。創(chuàng)建小應(yīng)用程序時使用創(chuàng)建小應(yīng)用程序時使用JApplet,它被包含在瀏覽器窗口中。,它被包含在瀏覽器窗口中。創(chuàng)建對話創(chuàng)建對話框時使用框時使用JDialog。JWindow是一個不帶有標(biāo)題是一個不帶有標(biāo)題行和控制按鈕的窗口,因此通常很少使用行和控制按鈕的窗口,因此通常很少使用6例例1:應(yīng)用:應(yīng)用JFrame類建立一個窗體類建立一個窗體importjava.awt.*;importjavax.swing.*;publicclassJFrameDemopublicstaticvoidmain

6、(Strings)JFrameframe=newJFrame(JFrameDemo);/創(chuàng)建一個創(chuàng)建一個JFrame的實例的實例JButtonbutton=newJButton(Pressme);/創(chuàng)建一個創(chuàng)建一個JButton的實例的實例frame.getContentPane().add(button,BorderLayout.CENTER);/將將JButton放到放到JFrame的中央的中央frame.pack();/將將JFrame設(shè)置到適當(dāng)?shù)拇笮≡O(shè)置到適當(dāng)?shù)拇笮rame.setVisible(true);/顯示顯示JFrame7將組件放入內(nèi)容窗格將組件放入內(nèi)容窗格頂層容器都有一個

7、頂層容器都有一個內(nèi)容窗格(內(nèi)容窗格(ContentPane)頂層容器中除菜單之外的組件都是放在這個內(nèi)容窗格頂層容器中除菜單之外的組件都是放在這個內(nèi)容窗格中中方法一:通過頂層容器的方法一:通過頂層容器的getContentPane()方法獲得其方法獲得其缺省的內(nèi)容窗格,然后將組件添加到內(nèi)容窗格中。例缺省的內(nèi)容窗格,然后將組件添加到內(nèi)容窗格中。例如:如:ContainercontentPane=frame.getContentPane();contentPane.add(button,BorderLayout.CENTER);或或frame.getContentPane().add(button,

8、BorderLayout.CENTER);8將組件放入內(nèi)容窗格將組件放入內(nèi)容窗格方法二:方法二:創(chuàng)建一個新的內(nèi)容窗格取代頂層容器缺省創(chuàng)建一個新的內(nèi)容窗格取代頂層容器缺省的內(nèi)容窗格。通常是創(chuàng)建一個的內(nèi)容窗格。通常是創(chuàng)建一個JPanel的實例,然的實例,然后將組件添加到后將組件添加到JPanel實例中,再通過頂層容器實例中,再通過頂層容器的的setContentPane()方法將方法將JPanel實例設(shè)置為新的實例設(shè)置為新的內(nèi)容窗格,例如:內(nèi)容窗格,例如:JPanelcontentPane=newJPanel();contentPane.setLayout(newBorderLayout();co

9、ntentPane.add(button,BorderLayout.CENTER);frame.setContentPane(contentPane);思考:使用方法二實現(xiàn)例思考:使用方法二實現(xiàn)例1功能功能9面板面板(JPanel)面板(面板(JPanel)是一種用途廣泛的容器)是一種用途廣泛的容器與頂層容器不同的是,面板不能獨立存在,必須被與頂層容器不同的是,面板不能獨立存在,必須被添加到其他容器內(nèi)部添加到其他容器內(nèi)部面板可以嵌套,由此可以設(shè)計出復(fù)雜的圖形用戶界面板可以嵌套,由此可以設(shè)計出復(fù)雜的圖形用戶界面面JPanelpanel=newJPanel();panel.setBackgroun

10、d(Color.yellow);panel.add(button);10布局管理器布局管理器布局管理器控制組件在容器中的大小、形狀布局管理器控制組件在容器中的大小、形狀和位置。和位置。每每一一個個容容器器都都有有一一個個默默認(rèn)認(rèn)的的布布局局管管理理器器,也也可可以以通通過過setLayout()方法方法來設(shè)置其他布局管理器。來設(shè)置其他布局管理器。布布 局局 管管 理理 器器:FlowLayout、BorderLayout、GridLayout、CardLayout、null.11FlowLayout布局管理器布局管理器1、FlowLayout流式布局流式布局FlowLayout布布局局管管理理

11、是是一一種種最最簡簡單單的的布布局管理方法,是局管理方法,是JPanel的默認(rèn)布局的默認(rèn)布局它它將將組組件件按按每每行行先先后后自自左左向向右右放放置置,一一行行放不下時再換行放不下時再換行FlowLayout的默認(rèn)對齊方式為的默認(rèn)對齊方式為居中對齊居中對齊12FlowLayout布局管理器布局管理器構(gòu)造函數(shù):構(gòu)造函數(shù):FlowLayout():():創(chuàng)建默認(rèn)的創(chuàng)建默認(rèn)的FlowLayout布局管理器。布局管理器。FlowLayout(intalign):以指定的對齊方式創(chuàng)建:以指定的對齊方式創(chuàng)建FlowLayout布局管理器。布局管理器。其中的參數(shù)有:其中的參數(shù)有:FlowLayout.LE

12、FT(左對齊左對齊)、FlowLayout.RIGHT(右對齊)、(右對齊)、FlowLayout.CENTER(居中對齊)。(居中對齊)。FlowLayout(intalign,inthgap,intvgap):以指定的對:以指定的對齊方式及間距創(chuàng)建齊方式及間距創(chuàng)建FlowLayout布局管理器。其中第一個布局管理器。其中第一個參數(shù)為參數(shù)為對齊方式對齊方式,第二個參數(shù)為,第二個參數(shù)為組件行間距組件行間距,第三個參,第三個參數(shù)為數(shù)為列間距列間距。13FlowLayout布局管理器布局管理器示例:示例:setLayout(newFlowLayout(FlowLayout.RIGHT,20,40)

13、;setLayout(newFlowLayout(FlowLayout.LEFT);setLayout(newFlowLayout();14FlowLayout布局管理器布局管理器【例例2】編寫關(guān)于編寫關(guān)于FlowLayout布局的窗框程序,在布局的窗框程序,在窗框中放置多個個按鈕、標(biāo)簽和文本框。窗框中放置多個個按鈕、標(biāo)簽和文本框。程序代碼:程序代碼:Example2.java15BorderLayout布局管理器布局管理器2、BorderLayout邊界布局管理器邊界布局管理器BorderLayout是是頂層容器中內(nèi)容窗格頂層容器中內(nèi)容窗格的默認(rèn)布局的默認(rèn)布局它它將將整整個個容容器器的的區(qū)區(qū)

14、域域分分為為東東、西西、南南、北北、中中五五個部分。加入組件時,需指明放置的位置個部分。加入組件時,需指明放置的位置。在在BorderLayout布局管理器的管理下,組件必須布局管理器的管理下,組件必須通過通過add()方法方法加入到容器的五個命名區(qū)域之一。加入到容器的五個命名區(qū)域之一。在容器的每個區(qū)域,只能加入一個組件。在容器的每個區(qū)域,只能加入一個組件。16BorderLayout布局管理器布局管理器構(gòu)造函數(shù)構(gòu)造函數(shù)BorderLayout():創(chuàng)建默認(rèn)的():創(chuàng)建默認(rèn)的BorderLayout。BorderLayout(int,int):以以指指定定的的行行間間距距和和列列間間距距創(chuàng)創(chuàng)建

15、建BorderLayout。在在BorderLayout布局的容器中放置組件,可調(diào)用布局的容器中放置組件,可調(diào)用add()方法,例如:方法,例如:容器對象容器對象.add(組件組件,BorderLayout.SOUTH);17BorderLayout布局管理器布局管理器【例例3】編寫關(guān)于編寫關(guān)于BorderLayout邊框布局的窗框程邊框布局的窗框程序,在窗框中放置序,在窗框中放置6個按鈕,其中南邊放置個按鈕,其中南邊放置2個按鈕。個按鈕。程序代碼:程序代碼:BorderLayoutDemo.java18GridLayout布局管理器布局管理器3、GridLayout網(wǎng)格布局網(wǎng)格布局GridL

16、ayout是是一一種種網(wǎng)網(wǎng)格格式式的的布布局局管管理理器器,將將容容器器區(qū)區(qū)域域劃劃分分成成m行行*n列列的的大大小小相相等等的的格格子子,而而容容器器中中的的組組件件就就放放入這些格子中,占用大小完全相同的一格。入這些格子中,占用大小完全相同的一格。構(gòu)造函數(shù):構(gòu)造函數(shù):GridLayout():創(chuàng)創(chuàng)建建默默認(rèn)認(rèn)的的GridLayout布布局局,所所有有組件在一行中顯示。組件在一行中顯示。GridLayout(introws,intcols):按按指指定定行行數(shù)數(shù)和和列列數(shù)數(shù)創(chuàng)建創(chuàng)建GridLayout布局。布局。GridLayout(introws,intcols,inthgap,intvg

17、ap):按按指指定定行行數(shù)數(shù)、列列數(shù)數(shù)、行行間間距距和和列列間間距距創(chuàng)創(chuàng)建建GridLayout布布局。局。19GridLayout布局管理器布局管理器【例例4】編寫一個編寫一個4行行2列的列的GridLayout網(wǎng)格布局程網(wǎng)格布局程序,可以用來保存學(xué)生的基本信息。序,可以用來保存學(xué)生的基本信息。程序代碼:程序代碼:GridLayDemo.java20CardLayout布局管理器布局管理器4、CardLayout卡片布局卡片布局一一種種卡卡片片式式的的布布局局管管理理器器,將將容容器器中中的的組組件件(通通常常是是面面板板)像像撲撲克克牌牌一一樣樣排排列列,里里面面放放置置多多張張疊疊放放在

18、在一一起起的的卡卡片片(組組件件),每每次次只只能能顯顯示示最最上上面面的的一一張張。執(zhí)行卡片布局執(zhí)行卡片布局next等方法翻看卡片。等方法翻看卡片。構(gòu)造函數(shù)構(gòu)造函數(shù)CardLayout():創(chuàng)創(chuàng)建建默默認(rèn)認(rèn)的的CardLayout布布局局管理器。管理器。CardLayout(introws,intcols):以以指指定定的的行行間距和列間距創(chuàng)建間距和列間距創(chuàng)建CardLayout布局管理器。布局管理器。21CardLayout布局管理器布局管理器主要方法:主要方法:voidfirst()顯顯示示第第一一個個加加入入到到CardLayout的的組組件件voidlast()顯顯示示最最后后一一個

19、個加加入入到到CardLayout的的組組件件voidnext()顯顯示示當(dāng)當(dāng)前前組組件件的的下下一一個個組組件件,如如當(dāng)當(dāng)前前是最后一個,則下一個為第一個是最后一個,則下一個為第一個voidprevious()顯顯示示當(dāng)當(dāng)前前組組件件的的前前一一個個組組件件,如如當(dāng)前是第一個,則前一個為最后一個當(dāng)前是第一個,則前一個為最后一個容容器器對對象象.add(卡卡片片組組件件,“卡卡片片1”);第第二二個個參參數(shù)數(shù)用來標(biāo)識卡片,沒有該參數(shù),將引發(fā)異常。用來標(biāo)識卡片,沒有該參數(shù),將引發(fā)異常。22CardLayout布局管理器布局管理器與幻燈片播放與幻燈片播放【例例5】編寫編寫CardLayout布局程

20、序,在窗框中部放布局程序,在窗框中部放置一個卡片布局面板(卡片盒),內(nèi)放置一個卡片布局面板(卡片盒),內(nèi)放3張卡片面張卡片面板,每張卡片設(shè)背景色,并放一個標(biāo)簽。窗框下部板,每張卡片設(shè)背景色,并放一個標(biāo)簽。窗框下部安放一個面板,上面放安放一個面板,上面放4個按鈕:個按鈕:“上翻上翻”、“下下翻翻”、“自動播放自動播放”和和“暫停暫?!?。程序代碼:程序代碼:Example4.java23不使用布局管理器不使用布局管理器5、null布局管理器布局管理器null布布局局管管理理器器將將主主動動權(quán)權(quán)交交給給用用戶戶,由由用用戶戶使使用用坐坐標(biāo)標(biāo)系系統(tǒng)統(tǒng)來來放放置置每每個個組組件件,即即調(diào)調(diào)用用組組件件的

21、的setBounds()方方法法來來設(shè)設(shè)置其放置位置和大小。置其放置位置和大小。1調(diào)用容器的調(diào)用容器的setLayout(null)將布局管理器將布局管理器設(shè)置為空設(shè)置為空 2調(diào)用組件的調(diào)用組件的setBounds()方法設(shè)置組方法設(shè)置組件的位置和大件的位置和大小小 24null布局管理器布局管理器setBounds()方法的格式方法的格式:setBounds(int x,int y,int width,int height)前兩個前兩個int型參數(shù)設(shè)置組件的位置,后兩個型參數(shù)設(shè)置組件的位置,后兩個int型參數(shù)設(shè)置組件的寬度和高度型參數(shù)設(shè)置組件的寬度和高度25null布局管理器布局管理器【例例

22、6】編寫手工布局程序,把窗框布局設(shè)為空,編寫手工布局程序,把窗框布局設(shè)為空,然后在上面放置標(biāo)簽、文本框和按鈕。然后在上面放置標(biāo)簽、文本框和按鈕。程序代碼:程序代碼:Example5.java26練習(xí)練習(xí)1.使用使用null布局管理器編寫程序?qū)崿F(xiàn)界面顯示效果布局管理器編寫程序?qū)崿F(xiàn)界面顯示效果如圖如圖a所示。所示。2.編寫程序?qū)崿F(xiàn)圖編寫程序?qū)崿F(xiàn)圖b所示顯示效果,界面中添加所示顯示效果,界面中添加6個個按鈕組件。按鈕組件。圖圖a圖圖b27練習(xí)練習(xí)參考程序:參考程序:GridLayoutDemo.javaLogon.java28第第5 5講講 圖形用戶界面設(shè)計圖形用戶界面設(shè)計主要內(nèi)容主要內(nèi)容pAWT和

23、和Swingp容器容器p布局布局pSwing組件組件pJava圖形設(shè)計圖形設(shè)計p事件處理事件處理29Swing組件組件按鈕按鈕經(jīng)常用到的按鈕經(jīng)常用到的按鈕JButton、JToggleButton、JCheckBox、JRadioButton均是均是AbstractButton的子類或間接子類的子類或間接子類都可以設(shè)置文本、設(shè)置圖標(biāo)、注冊事件監(jiān)聽程序都可以設(shè)置文本、設(shè)置圖標(biāo)、注冊事件監(jiān)聽程序30普通按鈕普通按鈕JButtonJButton構(gòu)造方法構(gòu)造方法JButton()創(chuàng)建一個既沒有顯示文本也沒有圖標(biāo)的按創(chuàng)建一個既沒有顯示文本也沒有圖標(biāo)的按鈕鈕JButton(Iconicon)創(chuàng)建一個沒有顯

24、示文本但有圖標(biāo)的創(chuàng)建一個沒有顯示文本但有圖標(biāo)的按鈕按鈕JButton(Stringtext)創(chuàng)建一個有顯示文本但沒有圖標(biāo)創(chuàng)建一個有顯示文本但沒有圖標(biāo)的按鈕的按鈕JButton(Stringtext,Iconicon)創(chuàng)建一個既有顯示文本創(chuàng)建一個既有顯示文本又有圖標(biāo)的按鈕又有圖標(biāo)的按鈕和和Button不同的是,不同的是,Button組件上只能顯示文字,組件上只能顯示文字,JButton可以顯示文字和可以顯示文字和圖標(biāo)圖標(biāo)。31普通按鈕普通按鈕JButtonJButton構(gòu)造顯示文本為構(gòu)造顯示文本為“Sample”的按鈕的按鈕構(gòu)造顯示文本為構(gòu)造顯示文本為“Sample”、帶有鉆石形狀小圖、帶有鉆石

25、形狀小圖標(biāo)的按鈕標(biāo)的按鈕JButton b=new JButton(“Sample”);JButton b=new JButton(Sample,new ImageIcon(icon.gif);32切換按鈕切換按鈕JToggleButtonJToggleButton是具有兩種狀態(tài)的按鈕,即是具有兩種狀態(tài)的按鈕,即選選中狀態(tài)中狀態(tài)和和未選中狀態(tài)未選中狀態(tài)JToggleButtonJToggleButton的構(gòu)造方法主要有:的構(gòu)造方法主要有:JToggleButton(Stringtext,booleanselected)創(chuàng)創(chuàng)建建一一個個有有顯示文本和指定初始狀態(tài)但沒有圖標(biāo)的切換按鈕顯示文本和指定

26、初始狀態(tài)但沒有圖標(biāo)的切換按鈕JToggleButton(Stringtext,Iconicon)創(chuàng)創(chuàng)建建一一個個既既有有顯顯示示文本又有圖標(biāo)的切換按鈕文本又有圖標(biāo)的切換按鈕JToggleButton(Stringtext,Iconicon,booleanselected)創(chuàng)建一個既有顯示文本又有圖標(biāo)和指定初始狀態(tài)的切換創(chuàng)建一個既有顯示文本又有圖標(biāo)和指定初始狀態(tài)的切換按鈕按鈕33JCheckBox,JRadioButton都是都是JToggleButton的子類的子類,構(gòu)造方法的格式與構(gòu)造方法的格式與JToggleButton相同,它們也都具有選中和未選中兩相同,它們也都具有選中和未選中兩種狀態(tài)

27、種狀態(tài)JCheckBox復(fù)選框典型的應(yīng)用是多項選擇題復(fù)選框典型的應(yīng)用是多項選擇題isSelected()方法獲知按鈕的當(dāng)前狀態(tài)方法獲知按鈕的當(dāng)前狀態(tài)34JRadioButton單選按鈕與單選按鈕與ButtonGroup按鈕組按鈕組JRadioButton單選按鈕組的典型應(yīng)用是單選按鈕組的典型應(yīng)用是單項選擇題單項選擇題,例如選,例如選擇題有擇題有3個答案,只允許選其中之一,需使用個答案,只允許選其中之一,需使用3個單選按鈕組個單選按鈕組成的按鈕組。成的按鈕組。按鈕組類按鈕組類ButtonGroup常用方法:常用方法:(1)ButtonGroup():構(gòu)造按鈕組對象(構(gòu)造方法只有:構(gòu)造按鈕組對象(

28、構(gòu)造方法只有1個)。個)。(2)voidadd(AbstractButtonb):將按鈕添加到組。:將按鈕添加到組。(3)voidclearSelection():清除按鈕組中按鈕的選中狀態(tài)。:清除按鈕組中按鈕的選中狀態(tài)。(4)intgetButtonCount():返回按鈕組的按鈕個數(shù)。:返回按鈕組的按鈕個數(shù)。(5)voidremove(AbstractButtonb):從按鈕組中移除按鈕。:從按鈕組中移除按鈕。35JCheckBox復(fù)選框復(fù)選框【例例7】編寫使用復(fù)選框進(jìn)行多項興趣愛好選擇的編寫使用復(fù)選框進(jìn)行多項興趣愛好選擇的程序。用鼠標(biāo)單擊各個復(fù)選框,均會在下面的只讀程序。用鼠標(biāo)單擊各個復(fù)

29、選框,均會在下面的只讀文本框中動態(tài)顯示選擇結(jié)果,運行效果如下圖:文本框中動態(tài)顯示選擇結(jié)果,運行效果如下圖:程序代碼:程序代碼:Example6.java36JRadioButton單選按鈕與單選按鈕與ButtonGroup按鈕組按鈕組【例例8】編寫使用單選按鈕組進(jìn)行志向選擇的程序,編寫使用單選按鈕組進(jìn)行志向選擇的程序,要求每次只選一個志向。程序運行效果如下:要求每次只選一個志向。程序運行效果如下:參考程序:參考程序:Example66.java37標(biāo)簽(標(biāo)簽(JLabel)標(biāo)簽(標(biāo)簽(JLabel)對象通常用于顯示提示性的文本信息)對象通常用于顯示提示性的文本信息或圖標(biāo)或圖標(biāo)構(gòu)造方法主要有:構(gòu)

30、造方法主要有:JLabel(Stringtext)構(gòu)造一個顯示文本信息的標(biāo)簽構(gòu)造一個顯示文本信息的標(biāo)簽JLabel(Stringtext,inthorizontalAlignment)構(gòu)構(gòu)造造一一個個顯示文本信息的標(biāo)簽顯示文本信息的標(biāo)簽JLabel(Iconimage,inthorizontalAlignment)構(gòu)構(gòu)造造一一個個顯顯 示示 圖圖 標(biāo)標(biāo) 的的 標(biāo)標(biāo) 簽簽,水水 平平 對對 齊齊 方方 式式 由由 int型型 參參 數(shù)數(shù)horizontalAlignment指定指定JLabel(Stringtext,Iconicon,inthorizontalAlignment)構(gòu)構(gòu)造造一一個個

31、同同時時顯顯示示文文本本信信息息和和圖圖標(biāo)標(biāo)的的標(biāo)標(biāo)簽簽,水水平平對對齊齊方方式式horizontalAlignment指定指定38標(biāo)簽(標(biāo)簽(JLabel)表示水平對齊方式的表示水平對齊方式的int型參數(shù)型參數(shù)horizontalAlignment的的取值可為取值可為JLabel.LEFT、JLabel.RIGHT、JLabel.CENTER等常量,分別表示左對齊、右對等常量,分別表示左對齊、右對齊和居中。齊和居中。例例:JLabellabel=newJLabel(“hello”,JLabel.LEFT);39組合框(組合框(JComboBox)組合框(組合框(JComboBox)是一個下拉

32、式菜單,它有)是一個下拉式菜單,它有兩種形式:兩種形式:不可編輯的和可編輯的不可編輯的和可編輯的,對不可編輯的,對不可編輯的JComboBox,用戶只能在現(xiàn)有的選項列表中進(jìn)行,用戶只能在現(xiàn)有的選項列表中進(jìn)行選擇;而可編輯的選擇;而可編輯的JComboBox,用戶既可以在現(xiàn),用戶既可以在現(xiàn)有選項中選擇,也可以輸入新的內(nèi)容有選項中選擇,也可以輸入新的內(nèi)容40JComboBox構(gòu)造方法構(gòu)造方法JComboBox()創(chuàng)創(chuàng)建建一一個個沒沒有有任任何何可可選選項項的的組組合框合框JComboBox(Objectitems)根據(jù)根據(jù)Object數(shù)組數(shù)組創(chuàng)建組合框,創(chuàng)建組合框,Object數(shù)組的元素即為組合框

33、中的可數(shù)組的元素即為組合框中的可選項選項例:創(chuàng)建一個具有四個可選項的組合框:例:創(chuàng)建一個具有四個可選項的組合框:StringitemList=One,Two,Three,Four;JComboBoxjcb=newJComboBox(itemList);41JComboBox類中方法類中方法publicvoidaddItem(ObjectanObject)在在末末尾尾位位置添加新的可選項置添加新的可選項publicvoidinsertItemAt(ObjectanObject,intindex)在在index指定的位置添加新的可選項指定的位置添加新的可選項anObjectpublicvoidre

34、moveAllItems()刪除所有可選項刪除所有可選項publicvoidremoveItem(ObjectanObject)刪刪除除由由anObject指定的可選項指定的可選項publicvoidremoveItemAt(intanIndex)刪除指定刪除指定位置(由位置(由anIndex指定)的可選項指定)的可選項42組合框(組合框(JComboBox)應(yīng)用)應(yīng)用【例例8】編程實現(xiàn)如下界面所示的運行效果。編程實現(xiàn)如下界面所示的運行效果。程序代碼:程序代碼:JComboBoxDemo.java43列表框(列表框(JList)列表(列表(JList)是可供用戶進(jìn)行選擇的一系列可選項)是可供用

35、戶進(jìn)行選擇的一系列可選項構(gòu)造方法構(gòu)造方法JList()構(gòu)造一個空列表構(gòu)造一個空列表JList(ObjectlistData)構(gòu)構(gòu)造造一一個個列列表表,列表的可選項由對象數(shù)組列表的可選項由對象數(shù)組listData指定指定JList(VectorlistData)構(gòu)造一個列表,構(gòu)造一個列表,列表的可選項由列表的可選項由Vector型參數(shù)型參數(shù)listData指定指定44列表框(列表框(JList)例:根據(jù)例:根據(jù)String數(shù)組構(gòu)造一個包含四個可選項的列數(shù)組構(gòu)造一個包含四個可選項的列表表也可通過下面的命令創(chuàng)建:也可通過下面的命令創(chuàng)建:Stringdata=one,two,three,four;JL

36、istdataList=newJList(data);VectorlistData=newVector();listData.addElement(one);listData.addElement(two);listData.addElement(three);listData.addElement(four);JListlist=newJList(listData);45列表框(列表框(JList)的應(yīng)用)的應(yīng)用【例例9】編程用編程用列表框(列表框(JList)實現(xiàn)如下界面所示實現(xiàn)如下界面所示的運行效果。的運行效果。程序代碼:程序代碼:JListDemo.java46文本組件(文本組件(JT

37、extComponent)用于顯示信息和提供用戶輸入功能用于顯示信息和提供用戶輸入功能在在Swing中提供了中提供了文本域文本域(JTextField)、)、口令輸入口令輸入域(域(JPasswordField)、文本區(qū)()、文本區(qū)(JTextArea)等多)等多個文本組件個文本組件,都有一個共同的基類都有一個共同的基類JTextComponent。47JTextComponent一些方法一些方法getSelectedText()從文本組件中提取被選中的文本內(nèi)容從文本組件中提取被選中的文本內(nèi)容getText()從文本組件中提取所有文本內(nèi)容從文本組件中提取所有文本內(nèi)容getText(intoff

38、s,intlen)從從文文本本組組件件中中提提取取指指定定范范圍圍的的文文本內(nèi)容本內(nèi)容select(intselectionStart,intselectionEnd)在在文文本本組組件件中中選選中指定范圍的文本內(nèi)容中指定范圍的文本內(nèi)容selectAll()在文本組件中選中所有文本內(nèi)容在文本組件中選中所有文本內(nèi)容setEditable(booleanb)設(shè)置為可編輯或不可編輯狀態(tài)設(shè)置為可編輯或不可編輯狀態(tài)setText(Stringt)設(shè)置文本組件中的文本內(nèi)容設(shè)置文本組件中的文本內(nèi)容setDocument(Documentdoc)設(shè)置文本組件的文檔設(shè)置文本組件的文檔copy()復(fù)制選中的文本到

39、剪貼板復(fù)制選中的文本到剪貼板cut()剪切選中的文本剪貼板剪切選中的文本剪貼板paste()將剪貼板的內(nèi)容粘貼到當(dāng)前位置將剪貼板的內(nèi)容粘貼到當(dāng)前位置48文本域文本域 JTextField文本域是一個單行的文本輸入框,可用于輸入少量文本域是一個單行的文本輸入框,可用于輸入少量文本文本主要構(gòu)造方法:主要構(gòu)造方法:JTextField(intcolumns)構(gòu)構(gòu)造造一一個個具具有有指指定定列列數(shù)數(shù)的空文本域,的空文本域,JTextField(Stringtext)構(gòu)構(gòu)造造一一個個顯顯示示指指定定初初始始字符串的文本域字符串的文本域JTextField(Stringtext,intcolumns)構(gòu)構(gòu)

40、造造一一個個具有指定列數(shù)、并顯示指定初始字符串的文本域具有指定列數(shù)、并顯示指定初始字符串的文本域例:例:構(gòu)造一個列數(shù)為構(gòu)造一個列數(shù)為35、初始字符串為、初始字符串為“SingleLine”的的文本域文本域JTextFieldtf=newJTextField(“SingleLine”,35);49文本區(qū)文本區(qū)JTextArea文本區(qū)是一個多行多列的文本輸入框。文本區(qū)是一個多行多列的文本輸入框。主要構(gòu)造方法:主要構(gòu)造方法:JTextArea()構(gòu)造一個空文本區(qū)構(gòu)造一個空文本區(qū)JTextArea(Stringtext)構(gòu)構(gòu)造造一一個個顯顯示示指指定定初初始字符串的文本區(qū)始字符串的文本區(qū)JTextAr

41、ea(introws,intcolumns)構(gòu)構(gòu)造造一一個個具具有指定行數(shù)和列數(shù)的空文本區(qū),有指定行數(shù)和列數(shù)的空文本區(qū),JTextArea(Stringtext,introws,intcolumns)構(gòu)構(gòu)造造一一個個具具有有指指定定行行數(shù)數(shù)和和列列數(shù)數(shù)、并并顯顯示示指指定定初初始始字符串的文本區(qū)字符串的文本區(qū)50文本區(qū)文本區(qū)JTextArea例:例:JTextAreata=newJTextArea(“Initialtext”,4,30)對文本區(qū)進(jìn)行操作的方法對文本區(qū)進(jìn)行操作的方法append(Stringstr)將指定文本追加到文本區(qū)。將指定文本追加到文本區(qū)。insert(Stringstr,

42、intpos)將指定文本插入到文本區(qū)的特定位置。將指定文本插入到文本區(qū)的特定位置。replaceRange(Stringstr,intstart,intend)指定文本替換文本區(qū)中的部分內(nèi)容指定文本替換文本區(qū)中的部分內(nèi)容 51JPasswordField密碼框密碼框JPasswordField顯示顯示特殊符號特殊符號,如,如*,達(dá)到保密目的。,達(dá)到保密目的。密碼框是文本框的子類,文本框和密碼框都屬于文本密碼框是文本框的子類,文本框和密碼框都屬于文本組件。組件。密碼框密碼框JPasswordField常用方法:常用方法:(1)JPasswordField()(2)JPasswordField(i

43、ntcolumns)(3)voidsetEchoChar(charc):設(shè)置密碼框回顯字符。設(shè)置密碼框回顯字符。(4)chargetPassword():獲取密碼框字符。:獲取密碼框字符。出于安全考慮,不要使用已過時的出于安全考慮,不要使用已過時的getText()方法獲取方法獲取密碼框字符。密碼框字符。52JTextField文本框與文本框與JPasswordField密碼框密碼框【例例10】編寫一個編寫一個Java程序,在程序中生成一個框程序,在程序中生成一個框架窗口,不使用窗口的布局管理器,加入組件,制架窗口,不使用窗口的布局管理器,加入組件,制作密碼驗證窗口。運行效果如下圖:作密碼驗證

44、窗口。運行效果如下圖:程序代碼:程序代碼:PassWordWin.java53菜單組件菜單組件SWING包中提供的多種菜單組件包中提供的多種菜單組件JMenuBarJMenuJMenuItem JCheckBoxMenuItemJRadioButtonMenuItemJPopupMenu54菜單欄菜單欄JMenuBarJMenuBar菜單欄是窗口中的主菜單,用來包容一組菜單菜單欄是窗口中的主菜單,用來包容一組菜單,只只有一種構(gòu)造方法:有一種構(gòu)造方法:JMenuBar()。JFrame、JApplet和和JDialog等類中定義了等類中定義了setJMenuBar(JMenuBarmenu)方法

45、,可以把菜單方法,可以把菜單欄放到窗口的上方欄放到窗口的上方例:例:JFrameframe=newJFrame(“JMenuBar”);JMenuBarmb=newJMenuBar();frame.setJMenuBar(mb);55菜單菜單JMenuJMenu菜單是最基本的下拉菜單,用來包容一組菜單項或菜單是最基本的下拉菜單,用來包容一組菜單項或子菜單。構(gòu)造方法如下子菜單。構(gòu)造方法如下:publicMenu(Stringlabel)/其中其中l(wèi)abel指定了菜單上的文本。指定了菜單上的文本。菜單加入菜單欄或者另一個菜單中菜單加入菜單欄或者另一個菜單中JMenumenu1=newJMenu(F

46、ile);JMenumenu2=newJMenu(Option);JMenumenu3=newJMenu(Help);mb.add(menu1);mb.add(menu2);mb.add(menu3);56菜單項菜單項JMenuItemJMenuItem常用的菜單項構(gòu)造方法常用的菜單項構(gòu)造方法JMenuItem(Iconicon)構(gòu)構(gòu)造造一一個個只只顯顯示示圖圖標(biāo)標(biāo)的的菜菜單單項,圖標(biāo)由項,圖標(biāo)由Icon型參數(shù)型參數(shù)icon指定指定JMenuItem(Stringtext)構(gòu)構(gòu)造造一一個個只只顯顯示示文文本本的的菜菜單項,文本由單項,文本由String型參數(shù)型參數(shù)text指定指定JMenuIt

47、em(Stringtext,Iconicon)構(gòu)構(gòu)造造一一個個同同時時顯顯示示文文本本和和圖圖標(biāo)標(biāo)的的菜菜單單項項,文文本本由由String型型參參數(shù)數(shù)text指指定定,圖標(biāo)由圖標(biāo)由Icon型參數(shù)型參數(shù)icon指定指定JMenuItem(Stringtext,intmnemonic)構(gòu)造一個顯構(gòu)造一個顯示文本并且有快捷鍵的菜單項,文本由示文本并且有快捷鍵的菜單項,文本由String型參數(shù)型參數(shù)text指定,快捷鍵由指定,快捷鍵由int型參數(shù)型參數(shù)mnemonic指定指定JMenum1=newJMenu(“File”);JMenuItemmi1=newJMenuItem(Save,KeyEven

48、t.VK_S);JMenuItemmi2=newJMenuItem(“Load”);JMenuItemmi3=newJMenuItem(“Quit”);m1.add(mi1);m1.add(mi2);m1.add(mi3);構(gòu)造了三個菜單項,分別顯示文本“Save”、“Load”和“Quit”,其中第一個菜單項的快捷鍵為Ctrl+S,三個菜單項均被加入菜單m1中 快捷鍵也可以在菜單項被創(chuàng)建之后,通過setMnemonic(char mnemonic)方法進(jìn)行設(shè)置 57菜單方法菜單方法addSeparator()和和insertSeparator(intindex):菜單菜單項間項間加入分隔線加

49、入分隔線例:例:JMenum1=newJMenu(“File”);m1.add(mi1);m1.add(mi2);m1.addSeparator();m1.add(mi3);58復(fù)選和單選菜單項復(fù)選和單選菜單項這是兩種特殊的菜單項,在復(fù)選菜單項前面有一這是兩種特殊的菜單項,在復(fù)選菜單項前面有一個小方框,在單選菜單項前面有一個小圓圈個小方框,在單選菜單項前面有一個小圓圈,可以可以進(jìn)行選中或不選中的操作,使用方法與復(fù)選按鈕進(jìn)行選中或不選中的操作,使用方法與復(fù)選按鈕和單選按鈕類似和單選按鈕類似當(dāng)菜單項的檢驗狀態(tài)發(fā)生改變時,會引發(fā)當(dāng)菜單項的檢驗狀態(tài)發(fā)生改變時,會引發(fā)ItemEvent事件事件,使用使用

50、ItemListener中的中的itemStateChanged()對此事件進(jìn)行響應(yīng)對此事件進(jìn)行響應(yīng)59構(gòu)造方法構(gòu)造方法復(fù)選菜單項構(gòu)造方法復(fù)選菜單項構(gòu)造方法單選菜單項構(gòu)造方法單選菜單項構(gòu)造方法boolean型參數(shù)指定菜單項的初始狀態(tài)型參數(shù)指定菜單項的初始狀態(tài)JCheckBoxMenuItem(Iconicon)JCheckBoxMenuItem(Stringtext)JCheckBoxMenuItem(Stringtext,booleanb)JCheckBoxMenuItem(Stringtext,Iconicon)JCheckBoxMenuItem(Stringtext,Iconicon,b

51、ooleanb)JRadioButtonMenuItem(Iconicon)JRadioButtonMenuItem(Iconicon,booleanselected)JRadioButtonMenuItem(Stringtext)JRadioButtonMenuItem(Stringtext,booleanselected)JRadioButtonMenuItem(Stringtext,Iconicon)JRadioButtonMenuItem(Stringtext,Iconicon,booleanselected)60菜單組件菜單組件編程實現(xiàn)如下圖運行結(jié)果:編程實現(xiàn)如下圖運行結(jié)果:程序代碼

52、:程序代碼:Example22.java61彈出式菜單彈出式菜單JPopupMenuJPopupMenu彈出式菜單(彈出式菜單(JPopupMenuJPopupMenu)是一種比較特殊的獨立)是一種比較特殊的獨立菜單,可以根據(jù)需要顯示在指定位置。有兩種構(gòu)造菜單,可以根據(jù)需要顯示在指定位置。有兩種構(gòu)造方法方法publicJPopupMenu()構(gòu)造一個沒有名稱的彈出式菜構(gòu)造一個沒有名稱的彈出式菜單單publicJPopupMenu(Stringlabel)構(gòu)造一個有指定名構(gòu)造一個有指定名稱的彈出式菜單稱的彈出式菜單62彈出式菜單彈出式菜單構(gòu)造一個名為構(gòu)造一個名為“Popup”的彈出式菜單的彈出式

53、菜單加入菜單或菜單項加入菜單或菜單項在顯示彈出式菜單時,必須調(diào)用在顯示彈出式菜單時,必須調(diào)用show()方法方法JPopupMenup=newJPopupMenu(“Popup”)JMenuItems=newJMenuItem(“Save”);JMenuIteml=newJMenuItem(“Load”);p.add(s);p.add(l);publicvoidshow(Componentorigin,intx,inty)需要有一個組件作參數(shù),該組件的位置將需要有一個組件作參數(shù),該組件的位置將作為顯示彈出式菜單的參考原點作為顯示彈出式菜單的參考原點 63對話框?qū)υ捒騄DialogJDialog

54、對話框(對話框(JDialog)是與框架類似的可移動窗口,)是與框架類似的可移動窗口,能夠被設(shè)置為能夠被設(shè)置為“模式模式”(model)(model)窗口,即在對話框窗口,即在對話框被關(guān)閉前,其他窗口無法接收任何輸入信息。被關(guān)閉前,其他窗口無法接收任何輸入信息。對話框的構(gòu)造方法對話框的構(gòu)造方法JDialog(Frameowner)構(gòu)造一個沒有標(biāo)題的非模式構(gòu)造一個沒有標(biāo)題的非模式對話框?qū)υ捒騄Dialog(Frameowner,booleanmodal)構(gòu)造一個沒構(gòu)造一個沒有標(biāo)題的對話框,有標(biāo)題的對話框,boolean型參數(shù)型參數(shù)modal指定對話框是否指定對話框是否為模式窗口為模式窗口JDia

55、log(Frameowner,Stringtitle)構(gòu)造一個有標(biāo)題構(gòu)造一個有標(biāo)題的非模式對話框,的非模式對話框,JDialog(Frameowner,Stringtitle,booleanmodal)構(gòu)造一個有標(biāo)題的對話框構(gòu)造一個有標(biāo)題的對話框64對話框?qū)υ捒騄Dialog例:例:JDialogdialog=newJDialog(frame,“Dialog”,true)setVisible(true)方法顯示,方法顯示,setVisible(false)方法可以方法可以將一個對話框隱藏起來將一個對話框隱藏起來65標(biāo)準(zhǔn)對話框標(biāo)準(zhǔn)對話框JOptionPaneSWING中還提供了用于顯示標(biāo)準(zhǔn)對話框

56、中還提供了用于顯示標(biāo)準(zhǔn)對話框(JOptionPane)的)的JOptionPane類類定義了多個定義了多個showXxxDialog形式的靜態(tài)方法形式的靜態(tài)方法showConfirmDialog確認(rèn)對話框,顯示問題,要求確認(rèn)對話框,顯示問題,要求用戶進(jìn)行確認(rèn)(用戶進(jìn)行確認(rèn)(yes/no/cancel)showInputDialog輸入對話框,提示用戶進(jìn)行輸入輸入對話框,提示用戶進(jìn)行輸入showMessageDialog信息對話框,顯示信息,告知信息對話框,顯示信息,告知用戶發(fā)生了什么情況用戶發(fā)生了什么情況showOptionDialog選項對話框,顯示選項,要求用選項對話框,顯示選項,要求用戶

57、進(jìn)行選擇戶進(jìn)行選擇66文件對話框文件對話框JFileChooser專門用于對文件(或目錄)進(jìn)行瀏覽和選擇的對話專門用于對文件(或目錄)進(jìn)行瀏覽和選擇的對話框,常用的構(gòu)造方法框,常用的構(gòu)造方法:JFileChooser()根據(jù)用戶的缺省目錄創(chuàng)建文件對話根據(jù)用戶的缺省目錄創(chuàng)建文件對話框框JFileChooser(FilecurrentDirectory)根據(jù)根據(jù)File型參數(shù)型參數(shù)currentDirectory指定的目錄創(chuàng)建文件對話框指定的目錄創(chuàng)建文件對話框JFileChooser(StringcurrentDirectoryPath)根據(jù)根據(jù)String型參數(shù)型參數(shù)currentDirecto

58、ryPath指定的目錄創(chuàng)建文件指定的目錄創(chuàng)建文件對話框?qū)υ捒?7文件對話框文件對話框JFileChooser顯示顯示showOpenDialog(Componentparent)顯示一個顯示一個“打開打開”文件對話框文件對話框showSaveDialog(Componentparent)顯示顯示“保存保存”文件對話框文件對話框showDialog(Componentparent,StringapproveButtonText)顯示一個自定義的文件對話框顯示一個自定義的文件對話框標(biāo)題和按鈕上的文本由標(biāo)題和按鈕上的文本由String型參數(shù)型參數(shù)approveButtonText指定指定Compon

59、ent型參數(shù),指定型參數(shù),指定 “父組件父組件”,決定了文件對話框,決定了文件對話框的顯示位置,如果該參數(shù)為的顯示位置,如果該參數(shù)為null,則文件對話框顯示在屏幕,則文件對話框顯示在屏幕正中正中通過通過getSelectedFile()方法取得用戶所選擇的文件方法取得用戶所選擇的文件68對話框?qū)υ捒騄Dialog例:編程實現(xiàn)如下圖運行結(jié)果:例:編程實現(xiàn)如下圖運行結(jié)果:程序代碼:程序代碼:Example8.java69練習(xí)練習(xí)1.實現(xiàn)計算器程序界面,程序運行效果如下圖實現(xiàn)計算器程序界面,程序運行效果如下圖1所示:所示:2.實現(xiàn)用戶注冊界面,程序的運行效果如下圖實現(xiàn)用戶注冊界面,程序的運行效果如

60、下圖2所示:所示:70練習(xí)練習(xí)參考程序:參考程序:CalculatorDemo.javaRegistDemo.java71第第5 5講講 圖形用戶界面設(shè)計圖形用戶界面設(shè)計主要內(nèi)容主要內(nèi)容pAWT和和Swingp容器容器p布局布局pSwing組件組件pJava圖形設(shè)計圖形設(shè)計p事件處理事件處理72控制組件外觀控制組件外觀顏色顏色使用下面方法(在使用下面方法(在Jcomponent中定義)設(shè)置組件的前中定義)設(shè)置組件的前景色和背景色景色和背景色java.awt.Color類的一個實例作參數(shù)類的一個實例作參數(shù),我們可以使用我們可以使用Color類中預(yù)定義的類中預(yù)定義的顏色常量顏色常量,比如,比如Co

61、lor.red和和Color.blue,也可以自己創(chuàng)建新的顏色:,也可以自己創(chuàng)建新的顏色:publicvoidsetForeground(Colorc)設(shè)置前景色設(shè)置前景色publicvoidsetBackground(Colorc)設(shè)置背景色設(shè)置背景色intr=255,g=255,b=0;ColormyColor=newColor(r,g,b)73字體字體創(chuàng)建創(chuàng)建Font對象對象Font(Stringname,intstyle,intsize):創(chuàng)創(chuàng)建建指指定定三三個參數(shù):字體名、字體風(fēng)格和尺寸大小的字體。個參數(shù):字體名、字體風(fēng)格和尺寸大小的字體。其其中中字字體體風(fēng)風(fēng)格格有有如如下下三三種種

62、:Font.BOLD(粗粗體體)、Font.ITALIC(斜體)、(斜體)、Font.PLAIN(普通體)。(普通體)。setFont(Fontf)方法對組件中文本的字體進(jìn)行設(shè)定方法對組件中文本的字體進(jìn)行設(shè)定參數(shù)參數(shù)java.awt.Font類的一個實例類的一個實例Fontf=newFont(“TimesNewRoman”,Font.PLAIN,14);字體名稱字體名稱 字體的大小字體的大小 字體的風(fēng)格字體的風(fēng)格 Font.BOLDFont.ITALICFont.PLAINFont.BOLD+Font.ITALIC74顏色與字體顏色與字體例:例:繪制文字繪制文字:編寫一個:編寫一個Java程序

63、,生成一個窗口,程序,生成一個窗口,在窗口中分別顯示紅色宋體和黑色粗體的在窗口中分別顯示紅色宋體和黑色粗體的“Java程程序設(shè)計序設(shè)計”文字。文字。參考程序:參考程序:PaintFont.java75繪圖繪圖當(dāng)組件被顯示時,調(diào)用當(dāng)組件被顯示時,調(diào)用java.awt.Component類中定義類中定義paint(Graphicsg)方法方法每當(dāng)需要重繪組件時,調(diào)用每當(dāng)需要重繪組件時,調(diào)用repaint()方法,該方法將方法,該方法將自動調(diào)用自動調(diào)用paint(Graphicsg)javax.swing.JComponent繼承繼承java.awt.Component,它的它的paint(Grap

64、hicsg)方法中,會調(diào)用如下三個方法:方法中,會調(diào)用如下三個方法:paintComponent(Graphicsg)繪制組件繪制組件paintBorder(Graphicsg)繪制組件的邊框繪制組件的邊框paintChildren(Graphicsg)繪制組件中的子組件繪制組件中的子組件在組件上繪制圖形,只在組件上繪制圖形,只需要改寫這個方法需要改寫這個方法 76GraphicsGraphics類的繪圖方法類的繪圖方法1 1、畫線、畫線在在Java的的Graphics類類中中提提供供畫畫線線功功能能的的是是drawLine()方方法,其調(diào)用格式如下:法,其調(diào)用格式如下:drawLine(in

65、tx1,inty1,intx2,inty2)該該方方法法需需要要設(shè)設(shè)置置四四個個參參數(shù)數(shù),其其中中x1,y1表表示示線線段段的的一一個個坐坐標(biāo)點,標(biāo)點,x2,y2表示線段的另一個坐標(biāo)點。表示線段的另一個坐標(biāo)點。2 2矩形的繪制矩形的繪制Graphics類類中中提提供供了了三三種種類類型型的的矩矩形形,它它們們分分別別是是普普通通矩矩形形、圓圓角角矩矩形形和和立立體體矩矩形形。而而每每一一種種矩矩形形都都提提供供兩兩種種不不同同風(fēng)風(fēng)格格的的方方法法,一一種種是是僅僅畫畫出出矩矩形形的的邊邊框框;另另一一種種是是不不僅僅畫畫出出邊邊框,并且還用相同的顏色將整個矩形區(qū)域填滿???,并且還用相同的顏色將

66、整個矩形區(qū)域填滿。772.矩形的繪制矩形的繪制(1 1)普通矩形)普通矩形drawRect(intx,inty,intwidth,intheight)/邊框型風(fēng)格邊框型風(fēng)格fillRect(intx,inty,intwidth,intheight)/填充型風(fēng)格填充型風(fēng)格其其中中頭頭兩兩個個參參數(shù)數(shù)分分別別表表示示矩矩形形左左上上角角的的x坐坐標(biāo)標(biāo)和和y坐標(biāo),后兩個參數(shù)分別表示矩形的寬度和高度。坐標(biāo),后兩個參數(shù)分別表示矩形的寬度和高度。782.矩形的繪制矩形的繪制 (2 2)立立體體矩矩形形立立體體矩矩形形也也可可以以說說是是三三維維矩矩形形。其其實實僅僅僅僅是是在在矩矩形形的的邊邊框框上上增增加加一一點點陰陰影影,使使矩矩形形看看上上去去相相對對表表平平面面好好像像有有凸凸出出或或凹凹下下的的效效果果,其其調(diào)調(diào)用方法的格式如下:用方法的格式如下:draw3DRect(int x,int y,int width,int height,booleanraised)fill3DRect(int x,int y,int width,int height,booleanraised)這這兩兩個個

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!