我像这样创建了对象形状的椭圆:
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
答案 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,它也画得更快)