中易网

java 如何将图片读入缓存中去??

答案:1  悬赏:60  
解决时间 2021-04-28 00:55
  • 提问者网友:伪善人独行者
  • 2021-04-27 16:36
请给个例子,并有repaint和paint方法 在Jframe中画出
程序中要有BufferedImage类
最佳答案
  • 二级知识专家网友:错过的是遗憾
  • 2021-04-27 16:45
paint方法是继承的,repaint方法在这里没什么意义,只是调用了一下而已,使得每隔5秒重绘一次

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setContentPane(new ImagePanel(new ImageIcon("test.gif").getImage()));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 100, 100);
frame.setVisible(true);

new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
frame.repaint();
}
}).start();
}

static class ImagePanel extends JPanel {
BufferedImage image;

public ImagePanel(Image image) {
// Not really need a BufferedImage, just a requirement
this.image = new BufferedImage(image.getWidth(null), image.getHeight(null),
BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = this.image.getGraphics();
g.drawImage(image, 0, 0, null);
}

public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息