Java グラフィック プログラムを使用して、4 つの三目並べボードの簡単なイメージを作成しようとしています。私のプログラムはコンパイルして実行できますが、4 つのボードのイメージを生成しません。インタラクション ペインに次のエラーが表示されます (コーディングには DrJava を使用しています)。
Welcome to DrJava. Working directory is C:\Users\Daniel\Desktop\CS Programs
> run TicTacToeBoards
java.lang.NullPointerException
at TicTacToeBoards.drawTicTacToeBoard(TicTacToeBoards.java:38)
at TicTacToeBoards.<init>(TicTacToeBoards.java:18)
at TicTacToeBoards.main(TicTacToeBoards.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
これは私が実行しようとしているプログラムです:
import java.awt.Color;
public class TicTacToeBoards {
private NsccWindow win;
public TicTacToeBoards() {
NsccWindow win;
win = new NsccWindow(10, 10, 330, 300);
win.setTitle("Tic-Tac-Toe Boards");
drawTicTacToeBoard(40, 40);
drawTicTacToeBoard(40, 170);
drawTicTacToeBoard(170, 40);
drawTicTacToeBoard(170, 170);
}
public void drawTicTacToeBoard(int x, int y) {
NsccLine vertLineL;
NsccLine vertLineR;
NsccLine horizLineU;
NsccLine horizLineD;
vertLineL = new NsccLine((x + 30), y, (x + 30), (y + 90));
vertLineR = new NsccLine((x + 60), y, (x + 60), (y + 90));
horizLineU = new NsccLine(x, (y + 30), (x + 90), (y + 30));
horizLineD = new NsccLine(x, (y + 60), (x + 90), (y + 30));
win.add(vertLineL);
win.add(vertLineR);
win.add(horizLineU);
win.add(horizLineD);
win.repaint();
}
public static void main(String[] args) {
TicTacToeBoards test = new
TicTacToeBoards();
}
}
私はJavaプログラミングにかなり慣れていないので、DrJavaでデバッグしてエラーを見つけようとしても役に立ちませんでした。誰か助けてくれませんか?:)