将图像添加到图形

时间:2013-06-24 11:38:10

标签: java

我像这样创建了对象形状的椭圆:

for (toop b : top)
{
    g.setColor(Color.orange);
    g.fillOval(b.getx(), b.gety(), 50, 50);
}

一切都很好。 但现在我想添加ball.png而不是设置颜色。 我使用了这段代码但没有改变:

for (toop b : top)
{
    g.drawImage(new ImageIcon("C:\\Users\\PETTER\\Desktop\\ball.png").getImage(), b.getx() , b.gety() , 50, 50, b);
    g.fillOval(b.getx(), b.gety(), 50, 50);
}

那我怎么能这样做?帮帮我PLZ

2 个答案:

答案 0 :(得分:0)

请勿使用paint()paintComponent()方法加载图片。在构造函数中执行此操作或创建init()方法。如果您尝试在框架或面板中绘制ball.png,请执行

Image ball = null;

private void init()
{
    ball = new ImageIcon(getClass().getClassLoader()
                                   .getResource("ball.png")).getImage();
}

@Override
public void paintComponent(Graphics g)
{
    g.drawImage(ball, 0, 0, 100, 100, null);
}

希望这有帮助。

答案 1 :(得分:0)

如果在drawImage之后调用fillOval,橙色将覆盖绘制。

另外,不要使用ImageIcons加载图像,而是使用ImageLoader.createImage(File)。 (返回的是BufferedImage,它也画得更快)