我正在尝试设置一个带按钮的菜单系统;但是,只显示一个按钮。
我找到了问题,我无法从一个类或它的子类创建Button类的多个实例。如果我这样做,它不会创建正确的第二个实例,然后它将缺少背景图像。这可能与我将Button类设为标准类的事实有关吗?
这是Button类的主要部分,我拿出的所有get方法都返回此类中的东西的值。
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;
}
答案 0 :(得分:0)
x和y位置是什么?
在我看来,你在另一个上面画了一个按钮。
答案 1 :(得分:0)
我现在通过在按钮类之外绘制按钮背景来解决问题。我仍然不知道为什么它不起作用,但这种方式有效。