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

ztpia 2007-08-24 02:14:40

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);
}
}
...全文
325 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanseliuying 2007-08-24
  • 打赏
  • 举报
回复
要显示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);
}
}
joejoe1991 2007-08-24
  • 打赏
  • 举报
回复
学习。。
ztpia 2007-08-24
  • 打赏
  • 举报
回复
xdjm们加油呀!顶起来
ztpia 2007-08-24
  • 打赏
  • 举报
回复
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

lanseliuying 2007-08-24
  • 打赏
  • 举报
回复
Toolkit.getDefaultToolkit().getImage方法使用的图像格式可以是 GIF、JPEG 或 PNG。如果格式正确还显示不出来可能是因为你的图片像素太大了。
weiqiwei 2007-08-24
  • 打赏
  • 举报
回复
(2)只要在程序中改为im=Toolkit.getDefaultToolkit().getImage("Miss.bmp");
就可以了
(3)paint 不需要程序去显示的调用,而且是由awt去调用。比如你可以调用repaint(),则awt会去自动去调用paint.
ztpia 2007-08-24
  • 打赏
  • 举报
回复
程序不复杂吧?!
是什么复杂了,给个思路也行呀。或者给个地址俺自己去看也好呀
gbgbcgbaak47 2007-08-24
  • 打赏
  • 举报
回复
有点复杂

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧