为什么显示不出来图像?(附源码)
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);
}
}