В настоящее время я пишу игру «Змейка» для урока информатики. Однако я столкнулся с множеством трудностей (поскольку я единственный в своем блоке, кто работает один), и мне пришлось начинать заново.
Сейчас я просто пытаюсь создать массив объектов (с именем Snake) из второго класса (Segment), который я создал.
Я получаю исключение NullPointerException в строке 26: g.fillRect(xValue, yValue, size, size); Где мне взять экземпляр Graphics для вызова этого метода?
import java.awt.*;
import java.applet.*;
public class Segment extends Applet
{
private Graphics g;
private int xValue;
private int yValue;
private int size;
public Segment () {}
public Segment(int x, int y)
{
xValue = x;
yValue = y;
size = 10;
drawSegment(g);
}
public void drawSegment(Graphics g)
{
g.fillRect(xValue, yValue, size, size);
}
}
import java.awt.*;
import java.applet.*;
public class SnakeGame extends Applet
{
private Segment[] snake;
private Graphics g;
private int length;
private int sxValue;
private int syValue;
public SnakeGame()
{
length = 6;
snake = new Segment[length];
sxValue = 100;
syValue = 100;
for (int c = 0; c < snake.length; c++)
{
snake[c] = new Segment(sxValue, syValue);
sxValue = sxValue + 10;
}
drawSnake(g);
}
public void drawSnake(Graphics g)
{
for(int counter = 0; counter < length; counter++)
{
snake[counter].drawSegment(g);
}
}
}
Однако я продолжаю получать такие ошибки, как
java.lang.NullPointerException
at Segment.drawSegment(Segment.java:26)
at Segment.(Segment.java:21)
at SnakeGame.(SnakeGame.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at java.lang.Class.newInstance(Class.java:433)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:799)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:728)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:745)
Подробнее здесь: https://stackoverflow.com/questions/306 ... let-applet
Как получить экземпляр java.awt.Graphics в java.applet.Applet? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Прямоугольники, созданные из java.awt.Graphics, исчезают вскоре после запуска окна.
Anonymous » » в форуме JAVA - 0 Ответы
- 68 Просмотры
-
Последнее сообщение Anonymous
-