Repl.it Java SWING, консоль продолжает заканчиваться тем, что не находит основной класс, как мне его добавить? - PullRequest
0 голосов
/ 14 марта 2019

Итак, это конечная ошибка, которую я получаю:

не удалось найти или загрузить основной класс main, вызванный java.lang.classnotfoundexception main

Это кодЯ использую: Main.java

package com.test.main;

import java.awt.Canvas;

public class Main extends Canvas implements Runnable {

    private static final long serialVersionUID = -235234634745643747L;

    public static final int WIDTH = 640, HEIGHT = WIDTH /12 * 9;

    public Game() {
        new Window(WIDTH, HEIGHT, "Test Window", this);
    }

    public synchronized void start() {
    }

    public void run() {
    }

    public static void main(String args[]){
            new Game();
    }
}

Window.java

package com.test.main;

import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;

public class Window extends Canvas{

    private static final long serialVersionUID = -235234634745643747L;

    public Window(int width, int height, String title, Game game) {
        JFrame frame = new JFrame(title);

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setMinimumSize(new Dimension(width, height));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setUndecorated(true);
        frame.setVisible(true);
        game.start();
    }
}

Итак, вопрос в том, что я делаю неправильно?Я не думаю, что ошибка исходит из моего кода, я думаю, что это связано с файлами (PS: я использую Repl.it на java swing).

1 Ответ

0 голосов
/ 16 марта 2019

Как говорит ошибка, метод не определен должным образом, так как отсутствует тип возвращаемого значения.Из существующего кода кажется, что вы намеревались определить конструктор из-за вызова

new Game();

в основном методе.Однако конструктор должен иметь то же имя, что и класс, в котором он определен, поэтому вы должны изменить его имя, например,

public Main() {

, а также обновить вызов в main () до

new Main();
...