-1

私はこのような楕円形のオブジェクトを作成しました:

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);
}

どうすればこれを行うことができますか?助けてください

4

2 に答える 2

0

drawImage の後に fillOval を呼び出すと、オレンジ色がペイントをオーバーライドします。

また、ImageIcons を使用して画像を読み込まず、代わりに ImageLoader.createImage(File) を使用してください。(戻り値は、より高速に描画される BufferedImage です)

于 2013-06-24T11:50:53.193 に答える
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);
}

お役に立てれば。

于 2013-06-24T11:47:48.343 に答える