Java 将图像加载到JPanel
我想将一个图像加载到JPanel。将要绘制的图像是从此JPanel保存的图像 例如,我有一张从JPanel捕获的图片,稍后我想将该图片加载到同一个JPanel 我试过这个,但不起作用。这段代码位于扩展JPanel的类中。有什么建议吗Java 将图像加载到JPanel,java,image,swing,jpanel,Java,Image,Swing,Jpanel,我想将一个图像加载到JPanel。将要绘制的图像是从此JPanel保存的图像 例如,我有一张从JPanel捕获的图片,稍后我想将该图片加载到同一个JPanel 我试过这个,但不起作用。这段代码位于扩展JPanel的类中。有什么建议吗 public void load(String path) throws IOException { BufferedImage img = ImageIO.read(new File(path)); Graphics2D g2
public void load(String path) throws IOException {
BufferedImage img = ImageIO.read(new File(path));
Graphics2D g2d = img.createGraphics();
g2d.drawImage(img, 0, 0, null);
this.repaint();
}
使用从图像本身派生的图形对象将图像绘制回自身(?)。而是将图像存储到字段中,而不是局部变量,并在JPanel的paintComponent方法中绘制该图像。最重要的是,看看
您可以通过覆盖来实现这一点 javax.swing组件的公共组件(图形g){…}
用于java.awt组件的public void paint(图形g)我的paintComponent方法处理其他内容。如何在paintComponent外部绘制图像?对不起,我是新来的swing@ManosKontakis:你没有。在paintComponent内部绘制它。请查看我的代码编辑,请阅读教程。没有想到if(img!=null)解决方案。谢谢你的快速回答和推荐信!
private BufferedImage img;
public void load(String path) throws IOException {
img = ImageIO.read(new File(path));
this.repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (img != null) {
g.drawImage(img, 0, 0, null);
}
}