java 解放 複数のインスタンスを描画できない




java 他クラス インスタンス 呼び出し (2)

私はボタンでメニューシステムをセットアップしようとしています。 ただし、右に表示されるボタンは1つだけです。

私は問題を発見した、私はボタンクラスの複数のインスタンスを1つのクラスまたはそれのサブクラスから作成することはできません。 私がそれを行うと、2番目のインスタンスが正しく作成されず、欠けている背景イメージが作成されます。 それは私がButtonクラスをスタンダードクラスにしたという事実と関係がありますか?

ここにButtonクラスの主要部分があります。私はこのクラスのものの値を返すメソッドをどこから取得したのですか?

public class Button {
private int x, y;
private int width, height;
private Image sprite;
private data.ImageControl Image = new data.ImageControl();
private String text = "";

public Button() {
    sprite = Image.getImage("game/menu/btn.png");
}

public void setImage(String file) {
    sprite = Image.getImage(file);
}

public void draw(Graphics2D g) {
    g.drawImage(sprite, x, y, null);
    Font_LARGE font = new Font_LARGE();

    //Find text pos
    int stringX, stringY;
    int textWidth;
    textWidth = text.length() * 14;

    stringX = x + ((width / 2) - (textWidth / 2));
    stringY = y + ((height / 2) - 8);

    font.drawString(g, text, stringX, stringY);
}

そして、私がどこから画像を取得するかのコードは次のとおりです:

public Image getImage(String filename) {
    Image img;
    try {
        ImageIcon i = new ImageIcon(getClass().getResource("sprite/" + filename));
        img = i.getImage();
    } catch(Exception e) {
        e.printStackTrace();
        System.err.println("ERROR - Unable to load image at " + filename + " loading empty image.");
        ImageIcon i = new ImageIcon(getClass().getResource("sprite/Physix/noImage.png"));
        img = i.getImage();
    }

    return img;
}

xとyの位置は何ですか?

それは、あなたがもう一方のボタンの上に1つのボタンを描くように見えます。


ボタンクラスの外にボタンの背景を描画するだけで問題は解決しました。 私はまだそれが動作しない理由は考えていませんが、このように動作します。





graphics2d