まず、この質問は約15パズルです。そして、私はそれをJava言語でコード化する方法を学びたいと考えています。スレッド "main"の例外java.lang.NullPointerException(15-Puzzle)
IDA *アルゴリズムについて私の大学で人工知能を学ぶ必要があり、Brian Borowski:http://brian-borowski.com/Software/Puzzle/によってこのリンクが見つかりました。それはかなり良いリンクでしたが、手動で構築しようとしたときにエラーが発生しました。私のEclipse上で。
誰も私を助けることができますか?
Exception in thread "main" java.lang.NullPointerException
at Puzzle.setNumOfTiles(Puzzle.java:45)
at Puzzle.<init>(Puzzle.java:25)
at GUI.<init>(GUI.java:196)
at Application.<init>(Application.java:19)
at Application.main(Application.java:27)
私はすでに検索グーグル、エラーをトレースしようとしたが、それでも私は解決策を見つけることができません:私は言うエラーが発生しました。 NullPointerExceptionは、いくつかの変数がnull値を持つ場合に発生します。 誰でも私をここで助けることができますか?ここ
ソースコードは
Application.javaある
public class Application {
/**
* Default constructor.
* Creates an instance of the gui.
*/
public Application() {
ApplicationStarter appStarter = null;
new GUI(appStarter); // Line 19
}
/**
* Main method.
* Creates an instance of the application.
*/
public static void main(final String[] args) {
new Application(); // Line 27
}
}
Puzzle.java
public Puzzle(final int numOfTiles) {
super();
setNumOfTiles(numOfTiles); // Line 25
setSize(panelWidth, panelHeight);
setDoubleBuffered(true);
}
public void setNumOfTiles(final int numOfTiles) {
this.numOfTiles = numOfTiles;
dimension = (int)Math.sqrt(numOfTiles);
imageArray = new Image[numOfTiles];
final String file = "images/" + (numOfTiles - 1) + "-puzzle/shrksign_";
imageArray[0] = null;
for (int i = 1; i < numOfTiles; ++i) {
final StringBuilder builder = new StringBuilder(file);
if (i <= 9) {
builder.append("0");
}
builder.append(Integer.toString(i));
builder.append(".gif");
imageArray[i] = ImagePanel.getImage(builder.toString());
}
imageWidth = imageArray[1].getWidth(null); // Line 45
imageHeight = imageArray[1].getHeight(null);
panelWidth = imageWidth * dimension;
panelHeight = imageHeight * dimension;
state = new byte[numOfTiles];
sleepMs = 500/imageWidth;
animationDone = true;
resetOrder();
}
GUI.java
...
this.puzzle = new Puzzle(PuzzleConfiguration.getNumOfTiles());
...
Puzzle.javaの45行目はどれですか?ヌルとは何で、この行にはいけないのですか?デバッガでコードを実行するとどうなりますか? –
45行目で何が起こるのかデバッグしましたか?そこには何があり、なぜですか? ImagePanel.getImage(...)がイメージを見つけず、その場合nullを返す可能性がありますか? ... – Thomas
'PuzzleConfiguration.getNumOfTiles()'の値は何ですか?あなたは喜んで、あなたのGIFが存在し、彼らは正しい名前を持っていますか? – Matzi