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);

}

解决方案 »

  1.   

    (2)只要在程序中改为im=Toolkit.getDefaultToolkit().getImage("Miss.bmp");
    就可以了
    (3)paint 不需要程序去显示的调用,而且是由awt去调用。比如你可以调用repaint(),则awt会去自动去调用paint.
      

  2.   

    Toolkit.getDefaultToolkit().getImage方法使用的图像格式可以是 GIF、JPEG 或 PNG。如果格式正确还显示不出来可能是因为你的图片像素太大了。
      

  3.   

    weiqiwei(weiqiwei) 
    你的方法还是不行呀。不过还是要谢谢你的(3)lanseliuying(别那么小气!) :
    Toolkit.getDefaultToolkit().getImage方法使用的图像格式可以是 GIF、JPEG 或 PNG,那这样的话,要显示BMP,应该怎么办了?
    下面是我的图源信息。能够正常被显示的图源A信息:宽度: 256像素
    高度:256像素
    水平分辩率: 300DPI
    垂直分辨经:300DPI
    位深度: 24
    帧数 :1
    大小 : 11.6Kb随便建立的一个JPG图的信息,不能被显示。宽度: 256像素
    高度:256像素
    水平分辩率: 96DPI
    垂直分辨经:96DPI
    位深度: 1
    帧数 :1
    大小 : 8.06Kb
      

  4.   

    要显示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);
      }
    }