Java圖形用戶界面.ppt
《Java圖形用戶界面.ppt》由會員分享,可在線閱讀,更多相關(guān)《Java圖形用戶界面.ppt(46頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第6章Java圖形用戶界面 6 1圖形用戶界面概述和java awt包簡介6 2字體和顏色的設(shè)置 圖形繪制和圖像顯示6 3Graphics2D畫圖簡介 6 1圖形用戶界面概述和java awt包簡介 圖形用戶界面GUI GraphicsUserInterface 就是應(yīng)用程序提供給用戶操作的圖形界面 包括窗口 菜單 按鈕 工具欄和其他各種界面元素 在Java里有兩個(gè)包為GUI設(shè)計(jì)提供了豐富的功能 awt abstractwindowstoolkit 包和swing包 awt是javaGUI的早期版本 組件種類有限 只提供基本的GUI設(shè)計(jì)類 swing包是SUN公司對早期版本的改進(jìn)版本 它提供了更加豐富的組件和功能 swing會用到awt中許多知識 學(xué)習(xí)awt包是學(xué)習(xí)GUI編程的基礎(chǔ) java awt包中的一些常用類 GUI組件分類 在AWT的概念中 窗口系統(tǒng)中所顯示的各種對象都統(tǒng)稱為 GUI組件 Component 組件有基本組件和容器組件之分 基本組件是不能包含其它組件的組件 是構(gòu)成圖形用戶界面的基本元素 容器組件是用來包含其他組件的 故稱之為容器 container 用戶可以把各種組件放入到容器中 也可以把容器放到另一個(gè)容器中 從而形成具有層次的組件結(jié)構(gòu) 組件類 Component 容器類 Container 基本組件類 面板類panel 窗體類windows Applet小程序類 Frame框架類 Dialog對話框類 無邊框 有邊框 6 2字體和顏色的設(shè)置 圖形繪制和圖像顯示 6 2 1設(shè)置字體 一 創(chuàng)建Font類的對象 Font Stringname intstyle intsize 使用java awt包中的Font類的構(gòu)造函數(shù)創(chuàng)建字體類的對象 例 Fontfont1 newFont 楷體 GB2312 Font BOLD Font ITALIC 50 二 設(shè)置字體 publicvoidsetFont Fontfont 設(shè)置字體publicFontgetFont 返回當(dāng)前字體對象 字體的創(chuàng)建和設(shè)置應(yīng)在顯示前進(jìn)行 否則以系統(tǒng)默認(rèn)字體顯示 例1 編寫一個(gè)簡單的設(shè)置字體的程序 將字體設(shè)置為宋體 黑體 大小為30個(gè)像素 并在小程序窗口輸出 TestFont javaimportjava applet Applet importjava awt Graphics importjava awt Font publicclassTestFontextendsApplet publicvoidpaint Graphicsg Fontfont1 newFont 宋體 Font BOLD 30 g setFont font1 Strings 中國北京 g drawString s 10 30 Graphics drawstring Stringstr intx inty 其中的坐標(biāo)x和y指的是整個(gè)文本塊顯示時(shí)左下角的位置 page1 htmlJava小程序 運(yùn)行后結(jié)果如下 思考 運(yùn)行后結(jié)果如下 6 2 2設(shè)置顏色 利用java awt包中的Color類可以創(chuàng)建顏色類的對象 一 創(chuàng)建color對象 publicColor intr intg intb publicColor intr intg intb inta 第一種是用r g b值創(chuàng)建一種不透明的顏色 第二種是用r g b值創(chuàng)建一種透明的顏色 a表示透明度 參數(shù)取值為0 255 publicColor floatr floatg floatb publicColor floatr floatg floatb floata 第一種是用r g b值創(chuàng)建一種不透明的顏色 第二種是用r g b值創(chuàng)建一種透明的顏色 a表示透明度 參數(shù)取值為0 0f 1 0f 二 Color類的顏色常量 Color類共有13種顏色常量 使用的時(shí)候可以查詢API文檔 如 Color RED表示紅色 三 設(shè)置顏色 publicvoidsetColor Colorc 設(shè)置顏色publicColorgetColor 返回當(dāng)前顏色對象publicintgetRed 得到當(dāng)前顏色對象的red值publicintgetGreen 得到顏色對象的green值publicintgetBlue 得到顏色對象的blue值publicintgetAlpha 得到顏色對象的alpha值 例2 編寫一個(gè)顏色設(shè)置的程序 TestColor javaimportjava applet Applet importjava awt publicclassTestColorextendsApplet publicvoidinit setBackground Color black publicvoidpaint Graphicsg Colorc1 newColor 255 0 0 Colorc2 newColor 255 0 0 128 Colorc3 Color pink Fontfont1 newFont 宋體 Font BOLD Font ITALIC 15 Strings 中國北京 g setColor c1 g setFont font1 g drawString 紅色 s 10 20 g setColor c2 g drawString 紅色 s 10 40 g setColor c3 g drawString 粉色 s 10 60 page2 htmlJava小程序 運(yùn)行后結(jié)果如下 6 2 3字符數(shù)組和字節(jié)數(shù)組的顯示 以下三個(gè)方法是Graphics類 該類在java awt包中 的方法 1 繪制字符串 publicvoiddrawString Stringstr intx inty 坐標(biāo)點(diǎn) x y 與要繪制的字符串Str左下角對應(yīng) 2 繪制字符數(shù)組 publicvoiddrawChars Charchars intoffset intnumber intx inty 參數(shù)offset是數(shù)組的起始下標(biāo) 參數(shù)number是要繪制的元素個(gè)數(shù) 坐標(biāo)點(diǎn) x y 含義同上 3 繪制字節(jié)數(shù)組 publicvoiddrawBytes Charbytes intoffset intnumber intx inty 含義同字符數(shù)組 例 編寫程序 顯示字符數(shù)組和字節(jié)數(shù)組 DrawCharByte javaimportjava applet importjava awt publicclassDrawCharByteextendsApplet publicvoidinit setBackground Color black publicvoidpaint Graphicsg Strings 中國北京 g setColor Color red g drawString s 20 40 charch newchar A B C D E g setColor Color white g drawChars ch 0 5 80 40 bytebyt newbyte 65 66 67 68 69 g setColor Color yellow g drawBytes byt 0 3 82 42 page3 javaJava小程序 運(yùn)行后結(jié)果如下 6 2 4java的圖形繪制 預(yù)備知識 Java圖形界面窗口的坐標(biāo)原點(diǎn) 0 0 在窗口左上角 水平向右為x的正方向 垂直向下為y的正方向 坐標(biāo)值單位是像素 小程序窗口的坐標(biāo)系同上 通過getSize 方法可得到小程序窗口界面的寬和高 小程序窗口寬w intw getSize width 小程序窗口高h(yuǎn) inth getSize height 1 畫直線 publicvoiddrawLine intx1 inty1 intx2 inty2 功能 在點(diǎn) x1 y1 和 x2 y2 之間畫直線 2 畫矩形 1 畫矩形 publicvoiddrawRect intx inty intwidth intheight 功能 以給定坐標(biāo) x y 為左上角坐標(biāo) 畫寬度為width 高度為height的矩形 2 用當(dāng)前設(shè)置的顏色畫填充矩形 publicvoidfillRect intx inty intwidth intheight 3 畫圓角矩形 publicvoiddrawRoundRect intx inty intwidth intheight intarcWidth intarcHeight publicvoidfillRoundRect intx inty intwidth intheight intarcWidth intarcHeight 前4個(gè)參數(shù)的意義同上 第5 6個(gè)參數(shù)arcWidth和arcHeight分別為水平方向圓弧總寬度 垂直方向圓弧總寬度 注 若圓弧的寬度和高度分別等于矩形的寬度和高度 則繪制的是橢圓 4 畫3D矩形 publicvoiddraw3DRect intx inty intwidth intheight booleanbool publicvoidfill3DRect intx inty intwidth intheight booleanbool 功能 繪制一個(gè)有立體感的矩形 當(dāng)bool為true時(shí) 矩形為突出的 當(dāng)bool為false時(shí) 矩形為凹陷的 3 畫橢圓和圓弧 1 畫橢圓 publicvoiddrawOval intx inty intwidth intheight publicvoidfillOval intx inty intwidth intheight 功能 x y是橢圓外切矩形左上角的坐標(biāo) 參數(shù)width和height是橢圓外切矩形的寬和高 上面的兩個(gè)方法分別畫橢圓和畫填充的橢圓 2 畫圓弧 publicvoiddrawArc intx inty intwidth intheight intstartAngle intarcAngle publicvoidfillArc intx inty intwidth intheight intstartAngle intarcAngle 功能 前4個(gè)參數(shù)同畫橢圓的參數(shù) 后兩個(gè)參數(shù)含義startAngle是弧的起始角度 arcAngle表示從起始角度算起轉(zhuǎn)多少度 逆時(shí)針為正 順時(shí)針為負(fù) 他們的單位都是度 取值為0到360度之間 若超過則取360的余數(shù) 例4 編寫程序演示畫填充的橢圓和填充的扇形 DrawOval javaimportjava applet importjava awt publicclassDrawOvalextendsApplet publicvoidpaint Graphicsg g setColor Color BLUE g drawRect 20 20 100 60 g setColor Color RED g fillOval 20 20 100 60 g setColor Color BLACK g drawOval 140 20 100 60 g fillArc 140 20 100 60 0 60 page4 htmlJava小程序 運(yùn)行后結(jié)果如下 6 2 5圖像的顯示 一 聲明和獲取一個(gè)圖像類的對象 1 定義一個(gè)圖像類的對象 Imagepic 2 獲取一個(gè)圖像的對象 這里只介紹小程序中獲取圖像的方法 publicImagegetImage URLurl Stringname 該方法是java applet Applet類提供的方法 用于從文件加載圖像到內(nèi)存 以便顯示圖像 name 圖像名稱 格式可以是gif jpg和png等 URL 圖像存放目錄 URL getDocumentBase 圖像存放在HTML文檔目錄下或其子目錄下時(shí) 使用該方法指明圖像路徑 getCodeBase 圖像存放在程序代碼所在目錄下或其子目錄下時(shí) 使用該方法指明圖像路徑 3 得到指定圖像的高度及寬度 intgetHeight ImageObserverobserver intgetWidth ImageObserverobserver 參數(shù)observer是加載圖像時(shí)的圖像觀察器 一般是在本類顯示 其值為this 如Imagepic getImage getCodeBase a jpg intw h w pic getWidth this h pic getHeight this 二 顯示圖像的方法 1 以圖像本身的大小顯示圖像 publicbooleandrawImage Imageimg intx inty ImageObserverobserver 說明 參數(shù)x y是被顯示的圖像在窗口左上角的圖標(biāo) 2 放大或縮小顯示圖像 publicbooleandrawImage Imageimg intx inty intwidth intheight ImageObserverobserver 說明 這里的width和height表示圖像在窗口顯示的尺寸 例5 編寫程序 演示按原圖大小顯示圖像 縮小為原圖一半顯示圖像 importjava applet importjava awt publicclassShowImageextendsApplet publicvoidpaint Graphicsg Imagepic getImage getCodeBase 計(jì)算 gif intw pic getWidth this inth pic getHeight this intd 5 g drawImage pic 0 0 this 原圖大小顯示g drawImage pic w d 0 w 2 h 2 this 縮小為原圖寬高一半并顯示 page5 htmlJava小程序 運(yùn)行后結(jié)果如下 6 3Graphics2D畫圖簡介 Java類庫中的java awt包中還提供了另外一個(gè)類Graphics2D供畫圖顯示使用 它是Graphics類的子類 與Graphics的區(qū)別 Graphic2D有更強(qiáng)大的圖形處理功能 它把要繪制的圖形當(dāng)作對象來處理 通過方法draw 和fill 繪制和填充圖形 方法的參數(shù)都是圖形對象 如直線 Line2D 矩形 Rectangle2D 和橢圓 Ellipse2D 等 上述的創(chuàng)建圖形對象的類都存在于java awt geom中 因此若要使用Graphics2D畫圖 需在程序前面引入java awt geom包中相應(yīng)的類 通常用paint Graphicsg 繪圖時(shí) 要通過以下語句把父類對象強(qiáng)制轉(zhuǎn)換為其子類Graphics2D的對象g2d進(jìn)行畫圖顯示 Graphics2Dg2d Graphics2D g 例6用Graphics2D畫一條直線 importjava applet importjava awt importjava awt geom publicclassTestGraphics2DextendsApplet publicvoidpaint Graphicsg Graphics2Dg2d Graphics2D g BasicStrokebstroke newBasicStroke 3 0f g2d setStroke bstroke Line2Dline newLine2D Double 20 0 20 0 32 0 20 0 g2d draw line 調(diào)用類Line2D的構(gòu)造函數(shù) 參數(shù)為Double型 見API的java awt geom包 page6 htmlJava小程序 運(yùn)行后結(jié)果如下- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Java 圖形 用戶界面
鏈接地址:http://m.jqnhouse.com/p-6359923.html