У меня есть 4 класса. Один из них - абстрактный класс сущности, один - класс шаров, один - основной класс, а другой - класс экрана.java.lang.NullPointerException при запуске программы
Класс шара расширяет класс сущности и имеет 5 переменных.
Функция экрана имеет метод рисования:
public void paint(Graphics g){
super.paint(g);
ball.paint(g);
}
И, конечно же, использовать ball.paint нужно сделать объект для него. Таким образом, я делаю мяч объект:
Ball ball;
А потом добавить это в конструкторе экрана, так как мне нужно (Ball имеет конструктор, который принимает 5 переменных):
public Screen(){
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
}
Это придумывает нет ошибки, но когда я запускаю программу, я получаю эту ошибку в консоли:
Exception in thread "main" java.lang.NullPointerException
at h3x.engine.gfx.Screen.<init>(Screen.java:18)
at h3x.engine.Main.main(Main.java:16)
линии 16 основного класса это:
frame.add(new Screen());
... и линия 18 класса экрана заключается в следующем:
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
Так что мой вопрос, почему это происходит, и как я могу это исправить. Я могу поместить весь код в классы, если это необходимо.
Спасибо!
для лучшей помощи скорее опубликовать [SSCCE] (http://sscce.org/), короткие, работоспособные, компилируется, до того, чтобы поместить весь шар в массив, внутри paintComponent, чтобы забрать шары из массива, вызванные из Swing Timer, иначе каждый ответ здесь может быть шортами к темноте – mKorbel