【问题标题】:How to load an image to an object如何将图像加载到对象
【发布时间】:2016-10-23 07:05:38
【问题描述】:
我有一个对象类,在这个类中我有一个渲染方法。我想知道如何渲染图像。
我已经在网上搜索过,但一切都很模糊,我对编码很陌生,所以这就是我最终问的原因。
【问题讨论】:
-
请包含更多上下文和/或代码。您使用的是 JFrame 还是其他东西? Here 是我之前写的一些代码,可能会给你一些提示。
-
你能给我们指点你正在学习的教程吗?下次你最好问这个教程的“模棱两可的部分”而不是How to do X? i> 如果教程中的内容含糊不清,我们的答案肯定也会同样模棱两可;这对社区中的其他成员也没有好处,因为这是一个非常具体的问题,当你询问时总是尝试去通用,并在 cmets 中去具体。 欢迎来到社区@Karl(我建议你this reading)
标签:
java
image
object
rendering
【解决方案1】:
如果您使用的是 JFrame,请将此 JPanel 添加到您的框架中:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.IOException;
import javax.swing.JPanel;
public class ImageView extends JPanel{
private static final long serialVersionUID = 1L;
private Image img;
private int x = 0;
private int y = 0;
private int width = this.getWidth();
private int height = this.getHeight();
public ImageView(){
super();
try{
img = ImageIO.read(new File("<img_path>.jpg"));
}catch(IOException ex){
// catch exception
}
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
if(img!=null){
g2d.drawImage(img, x, y, width, height, this);
}
}
// your render method
public void render(Image img){
this.img = img;
repaint();
}
}