Java加载与显示图片—含本地图片与网络图片
描述:
本文以例子代码的形式讲述在Java下如何加载与显示图片。
技术实现:
导入包:
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.MalformedURLException;
import java.net.URL;
实现代码:
public class Test extends Frame{
Image myImage;
String sMsg;
boolean loadFinished;
public static void main(String[] av) {
Test r = new Test( );
r.setVisible(true);
r.loadURLImage("/xkadmin/eWebEditor/UploadFile/201012711859288.jpg");
}
/** Construct the object */
public Test() {
super();
sMsg = "Loading...";
setSize(860, 660);
}
//加载网络上图片
public void loadURLImage(String sUrl){
Toolkit toolkit;
loadFinished = false;
toolkit = Toolkit.getDefaultToolkit();
try {
URL url = new URL(sUrl);
myImage = toolkit.getImage(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
Graphics g = this.getGraphics();
g.drawImage(myImage, 6, 36, this);
}
//加载本地图片
public void loadLoaclImage(String sFile){
Toolkit toolkit;
loadFinished = false;
toolkit = Toolkit.getDefaultToolkit();
myImage = toolkit.getImage(sFile);
Graphics g = this.getGraphics();
g.drawImage(myImage, 6, 36, this);
}
public void paint(Graphics g) {
//判断是否加载完成
if ( loadFinished == true ){
g.drawImage(myImage, 6, 36, this);
}else{
g.drawString(sMsg, 100, 100);
}
}
//图片加载状态通知函数
public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) {
if ( infoflags == ALLBITS ) {
loadFinished = true;
repaint();
return false;
} else
{
return true;
}
}
}