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);
}
}
就可以了
(3)paint 不需要程序去显示的调用,而且是由awt去调用。比如你可以调用repaint(),则awt会去自动去调用paint.
你的方法还是不行呀。不过还是要谢谢你的(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
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);
}
}