JPanel paintComponent(...)不起作用

1 java swing image paint

我的问题很容易解释:我想要一个/一些JPanels,添加到JFrame,用图像绘制自己.可悲的是,最后一件事不起作用.获取信息:图像路径正确,JPanel大小与图像大小相同.请求帮助:P

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);
  }                 
}
Run Code Online (Sandbox Code Playgroud)

viv*_*nig 5

我的第一个猜测是你传递了错误x而且y.The xyin g.drawImage是左上角的坐标,而不是图像的大小,所以通常它们直接设置为0(这意味着,g.draWimage(imga, x, y, this).

  • @SimonMaas请考虑[接受](http://meta.stackexchange.com/a/5235)最能帮助您的答案. (2认同)