Я читал около полутора часов, и по какой-то причине я получаю эту ошибку. Полная ошибка:Исключение из потока "main" java.lang.NullPointerException с массивами?
"Exception in thread "main" java.lang.NullPointerException
at HauntedHouse.livingRoomPath(HauntedHouse.java:98)
at TestHauntedHouse.main(TestHauntedHouse.java:8)
Java Result: 1"
После запуска методов из моего основного класса в классе тестирования.
Я создаю игру в лабиринте дома с привидениями, и вы выбираете, к какой комнате идти, и к каким объектам нужно взаимодействовать, если вы взаимодействуете с объектом, игра заканчивается. Код ниже, я предполагаю, что я делаю ошибку где-то в инструкции if, которая включает в себя сундук, потому что каждый другой путь работает, включая путь к ванной, и выбор объектов там. Это просто путь в гостиной, который, похоже, не работает, когда вы выбираете объект сундука, но я не уверен, что такое ошибка, я не получаю никаких красных отметок ошибки в моем основном классе.
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
public class HauntedHouse {
final ImageIcon map1 = new ImageIcon("C:\\Users\\Damian\\Pictures\\Designs\\Halloween Contest Card.jpg");
private String playerName, option1, option2, option3, option4, option5;
private int result1;
public void askName()
{
playerName = JOptionPane.showInputDialog(null, "Welcome to Damian's Spooky Haunted House of Harrowing. Please enter your name below to enter if you dare...",
"Welcoe to the Haunted House", JOptionPane.INFORMATION_MESSAGE);
}
public void showMap()
{
JOptionPane.showMessageDialog(null, "Are you ready to enter " + playerName + "? If not too bad, because here's where you start.",
"Your Map", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "The red dot is you.",
"Your Map", JOptionPane.INFORMATION_MESSAGE, map1);
}
public void livingRoomPath()
{
if (result1 == JOptionPane.YES_OPTION)
{
String [] options1 = {"Living Room", "Dinning Room", "Upstairs"};
int choice1 = JOptionPane.showOptionDialog(
null,
"Where would you like to move to next?",
"Option",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options1,
options1[2]);
option1 = options1[choice1];
}
if(option1.equals("Living Room"))
{
String [] options2 = {"Interact with an object", "Continue to Another Room"};
int choice2 = JOptionPane.showOptionDialog(
null,
"Welcome to the Living Room. The Master lives here. What would you like to do next?",
"Option",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options2,
options2[1]);
option2 = options2[choice2];
if(option2.equals("Interact with an object"))
{
String [] options3 = {"Chest"};
int choice3 = JOptionPane.showOptionDialog(
null,
"Which object would you like to interact with?",
"Option",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options3,
options3[0]);
option3 = options3[choice3];
JOptionPane.showMessageDialog(null, "Ghost escapes and scares you to death.",
"Game Over", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "You've been scared. Thanks for playing!",
"Game Over", JOptionPane.INFORMATION_MESSAGE);
}
else if(option2.equals("Continue to Another Room"))
{
String [] options4 = { "Bathroom",};
int choice4 = JOptionPane.showOptionDialog(
null,
"Where would you like to move to next?",
"Option",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options4,
options4[0]);
option4 = options4[choice4];
}
if(option4.equals("Bathroom"))
{
String [] options5 = { "Shower", "Mirror"};
int choice5 = JOptionPane.showOptionDialog(
null,
"Which object would you like to interact with?",
"Option",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options5,
options5[1]);
option5 = options5[choice5];
}
if(option5.equals("Shower"))
{
JOptionPane.showMessageDialog(null, "Room suddenly steams up and you feel fingers touching the back of your neck",
"Game Over", JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(null, "See a bloody face looking back at you.",
"Game Over", JOptionPane.INFORMATION_MESSAGE);
}
JOptionPane.showMessageDialog(null, "You've been scared. Thanks for playing!",
"Game Over", JOptionPane.INFORMATION_MESSAGE);
}
}
}
Возможный дубликат [Что такое Исключение Null Pointer и как его исправить?] (http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) –
Не уверен, что это дубликат, я просмотрел некоторые из них другие вопросы, связанные с этим, но это странно, потому что у меня есть несколько вещей в моем коде, которые повторяются, и все они работают, а затем только одна часть кода не работает. – beginnercoder010812
Это нормально - 'String [] options4 = {" Bathroom ",};' дополнительная запятая? – Leron