Вызов метода из другого класса, содержащего Graphics g [JAVA] - PullRequest
0 голосов
/ 23 января 2019

Я играю с графикой и немного сбил с пути.Я не могу назвать свой другой класс, содержащий мою графику.Заранее спасибо.Как вы можете видеть, я пытался назвать это gameOBJ.Draw, но это дает мне ошибки.Это ошибка: метод Draw (Graphics) в типе GameObjects не применим для аргументов ()

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 голосов
/ 23 января 2019

Чтобы исправить эту ошибку компиляции, вы можете передать объект graphics.

Например, вы можете использовать графику Windows (но это не может быть требованием вашей задачи / проекта. С JDK 10 Window.TITLE нет, я сомневаюсь, что это было и в более ранних версиях.)

Необязательно: По соглашениям имена методов в 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);
}
0 голосов
/ 23 января 2019

Здесь:

gameOBJ.Draw();

Там:

public void Draw(Graphics g) 

Подпись метода ожидает, что вы передадите аргумент, ваш вызов - нет.Просто так работать не может.

Ключевая вещь здесь: вы должны понимать, что вы делаете: когда ваш draw() метод должен опираться «на что-то», тогда вы должны передать это что-то ему,например, сначала создав это окно, чтобы затем извлечь графический объект, принадлежащий окну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...