日期:2014-05-20  浏览次数:20846 次

为什么显示不出来图像?(附源码)

import   java.awt.*;
import   java.awt.event.*;

(1)以下程序不变,只是改变图片将Miss.jpg改成自己定义的一附JPG图片,就显示不出来了?请问是为什么?
(2)顺便问一下paint方法是什么时候调用的?
(3)要显示BMP图像需要做什么修改?
谢谢了
public   class   LoadFromApp   extends   Frame   {
Image   im;

//LoadFromApp的构造方法,加载图像Miss.jpg
public   LoadFromApp(){
super( "加载图像! ");
im=Toolkit.getDefaultToolkit().getImage( "Miss.jpg ");
//添加窗口监听事件
addWindowListener(new   WindowAdapter(){
public   void   windowClosing(WindowEvent   e){
System.exit(0);
}
});

}

//LoadFromApp的paint()方法,显示图像信息
public   void   paint(Graphics   g){
g.drawImage(im,30,30,this);
}

//定义main方法,设置窗口的大小,显示窗口
public   static   void   main(String[]   args)   {
LoadFromApp   f   =   new   LoadFromApp();
f.setSize(500,400);
//f.pack();
f.setVisible(true);
}  
}

------解决方案--------------------
要显示BMP,可以转换为支持的格式。给你个例子
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;

public class ChangeImageStyle {

public static void main(String args[]) throws IOException{

File inputFile = new File( "test.bmp ");
BufferedImage input = ImageIO.read(inputFile);

//转换为gif格式的图片
File outputFile = new File( "test.gif ");
ImageIO.write(input, "GIF ", outputFile);

//转换为jpg格式的图片
outputFile = new File( "test.jpg ");
ImageIO.write(input, "JPG ", outputFile);

//转换为png格式的图片
outputFile = new File( "test.png ");
ImageIO.write(input, "PNG ", outputFile);
}
}