我的问题很容易解释:我想要一个/一些JPanels,添加到JFrame中,用图像绘制自己。可悲的是,最后一件事情是行不通的。对于信息:图像路径是正确的,并且JPanel大小与图像大小相同。 THX求助:PJPanel paintComponent(...)does not work
package frames;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import world.Terrain;
public class PanelTerrain extends JPanel {
private Image img;
private int x;
private int y;
private Image imga;
public PanelTerrain(Terrain terra, int x, int y) {
imga = new ImageIcon(terra.getPath()).getImage();
this.x = x;
this.y = y;
this.setBounds(x, y, 8, 8);
//this.setBackground(terra.getColor());
}
public void changeTerrain(Terrain t)
{
this.setVisible(false);
this.setBackground(t.getColor());
this.setVisible(true);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(imga, x, y, this);
}
}
你能看到jframe中的jpanel吗?什么是x,y值?如果你的面板和图像大小相同,那么x,y应该是0 –
正如@FastSnail所述:你如何使用这个类?你如何测试图像实际上是正确读取的?您是否尝试将图像显示为JOptionPane中显示的ImageIcon?如果是这样,它工作吗?考虑在JPanel周围放置一个临时边界,以便清楚地看到它的实际大小。请发布[mcve]。 –
像仍然在代码中呈现,我使用颜色测试面板,所以面板的作品。 :P 我使用它们: yArray [i] = new PanelTerrain(new Grass(),150 +(i * 8),50 + 8 * ycord); 面板应该出现的位置的x/y re。所以,用颜色进行测试,一切都像它应该的样子。通过一个简单的system.out.print()测试图像(路径)。但thx的提示,将尝试一个JOptionPane() –