从另一个包含Graphics g的类中调用方法[JAVA]

时间:2019-01-23 08:46:29

标签: java graphics

我正在玩图形游戏,遇到了一些障碍。我似乎无法调用包含我的图形的其他类。提前致谢。如您所见,我试图将其称为gameOBJ.Draw,但它给了我错误。 这是错误: GameObjects类型的Draw(Graphics)方法不适用于参数()

public class Testing{

public boolean running = true;
public static void main(String[] args) {
    GameObjects gameOBJ = new GameObjects();
    gameOBJ.Draw();
    Window window = new Window(Window.WIDTH, Window.HEIGHT, Window.TITLE);
}






public class GameObjects{

public void Draw(Graphics g) {
    g.setColor(Color.BLACK);
    g.fillRect(0, 0, Window.WIDTH, Window.HEIGHT);

}

}

2 个答案:

答案 0 :(得分:2)

这里:

gameOBJ.Draw();

那里:

public void Draw(Graphics g) 

方法签名期望您传递一个参数,而您的调用则不会。根本无法那样工作。

关键在这里:您必须了解自己在做什么:当您的draw()方法应在“某物上”绘制时,您必须将该物传递给它,例如,首先创建该窗口,然后获取属于该窗口的图形对象。

答案 1 :(得分:2)

要解决该编译错误,您可以传递一个graphics对象。

例如,您可以使用Windows图形(但这可能不是您的任务/项目的要求。对于JDK 10 Window.TITLE不存在的情况,我怀疑它是否也存在于较早的版本中。)< / p>

可选:按照惯例,Java中的方法名称应以小写字母开头,因此方法名称应为draw

public static void main(String[] args) {
    GameObjects gameOBJ = new GameObjects();

    //Pass the graphics object to the Draw method   
    Window window = new Window(Window.WIDTH, Window.HEIGHT, Window.TITLE);
    Graphics graphics =window.getGraphics() ; 
    gameOBJ.Draw(graphics);
}