JavaApplet編程顯示圖像
Java Applet常用來顯示存儲在GIF文件中的圖像。Java Applet裝載GIF圖像非常簡單,在Applet內使用圖像文件時需定義Image對象。多數Java Applet使用的是GIF或JPEG格式的圖像文件。Applet使用getImage方法把圖像文件和Image對象聯系起來。
Graphics類的drawImage方法用來顯示Image對象。為了提高圖像的顯示效果,許多Applet都采用雙緩沖技術:首先把圖像裝入內存,然后再顯示在屏幕上。
Applet可通過imageUpdate方法測定一幅圖像已經裝了多少在內存中。
裝載一幅圖像
Java把圖像也當做Image對象處理,所以裝載圖像時需首先定義Image對象,格式如下所示:
然后用getImage方法把Image對象和圖像文件聯系起來:
getImage方法有兩個參數。第一個參數是對getCodeBase方法的調用,該方法返回Applet的URL地址,如www.sun.com/Applet。第二個參數指定從URL裝入的圖像文件名。如果圖文件位于Applet之下的某個子目錄,文件名中則應包括相應的目錄路徑。
用getImage方法把圖像裝入后,Applet便可用Graphics類的drawImage方法顯示圖像,形式如下所示:
該drayImage方法的參數指明了待顯示的圖像、圖像左上角的x坐標和y坐標以及this。
第四個參數的目的是指定一個實現ImageObServer接口的對象,即定義了imageUpdate方法的對象(該方法隨后討論)。
顯示圖像(ShowImage.java)
為此,HTML文件中有關Applet的語句如下:
編譯之后運行該Applet時,圖像不是一氣呵成的。這是因為程序不是drawImage方法返回之前把圖像完整地裝入并顯示的。與此相反,drawImage方法創建了一個線程,該線程與Applet的原有執行線程并發執行,它一邊裝入一邊顯示,從而產生了這種不連續現象。為了提高顯示效果。許多Applet都采用圖像雙緩沖技術,即先把圖像完整地裝入內存然后再顯示在屏幕上,這樣可使圖像的顯示一氣呵成。
Graphics類的drawImage方法用來顯示Image對象。為了提高圖像的顯示效果,許多Applet都采用雙緩沖技術:首先把圖像裝入內存,然后再顯示在屏幕上。
Applet可通過imageUpdate方法測定一幅圖像已經裝了多少在內存中。
裝載一幅圖像
Java把圖像也當做Image對象處理,所以裝載圖像時需首先定義Image對象,格式如下所示:
| Image picture; |
然后用getImage方法把Image對象和圖像文件聯系起來:
| picture=getImage(getCodeBase(),"ImageFileName.GIF"); |
getImage方法有兩個參數。第一個參數是對getCodeBase方法的調用,該方法返回Applet的URL地址,如www.sun.com/Applet。第二個參數指定從URL裝入的圖像文件名。如果圖文件位于Applet之下的某個子目錄,文件名中則應包括相應的目錄路徑。
用getImage方法把圖像裝入后,Applet便可用Graphics類的drawImage方法顯示圖像,形式如下所示:
| g.drawImage(Picture,x,y,this); |
該drayImage方法的參數指明了待顯示的圖像、圖像左上角的x坐標和y坐標以及this。
第四個參數的目的是指定一個實現ImageObServer接口的對象,即定義了imageUpdate方法的對象(該方法隨后討論)。
顯示圖像(ShowImage.java)
| //源程序清單 import java.awt.*; import java.applet.*; public class ShowImage extends Applet Image picure; //定義類型為Image的成員變量 public void init() { picture=getImage(getCodeBase(),"Image.gif"); //裝載圖像 } public void paint(Graphics g) { g.drawImage(picture,0,0,this); //顯示圖像 } } |
為此,HTML文件中有關Applet的語句如下:
| <HTML> <TITLE>Show Image Applet</TITLE> <APPLET CODE="ShowImage.class" //class文件名為ShowImage.class WIDTH=600 HEIGHT=400> </APPLET> </HTML> |
編譯之后運行該Applet時,圖像不是一氣呵成的。這是因為程序不是drawImage方法返回之前把圖像完整地裝入并顯示的。與此相反,drawImage方法創建了一個線程,該線程與Applet的原有執行線程并發執行,它一邊裝入一邊顯示,從而產生了這種不連續現象。為了提高顯示效果。許多Applet都采用圖像雙緩沖技術,即先把圖像完整地裝入內存然后再顯示在屏幕上,這樣可使圖像的顯示一氣呵成。