我正在使用 Java 开发 Halo:CE 自定义游戏启动器,并且我正在使用 Java 中的 Properties 类设置首选项系统,因此用户可以设置自定义游戏路径。我使用 JFileChooser 选择一个文件,然后将该路径写入配置文件。
但是,程序在这一行给出了一个空指针异常:(这是在事件侦听器函数中)
if(source == fovChooseButton)
{
int returnVal = chooseFile.showOpenDialog(settingsWindow);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File selected = chooseFOV.getSelectedFile();
try
{
config.setProperty("STLPath", selected.getAbsolutePath()); //This line gives the exception
config.store(new FileOutputStream(CONFIG_FILE), null);
}
catch(Exception e)
{
handleException(e);
}
}
}
我确实有另一个 JFileChooser,它不会抛出任何异常。这是另一个的代码:
if(source == fileChooseButton)
{
int returnVal = chooseFile.showOpenDialog(settingsWindow);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File selected = chooseFile.getSelectedFile();
try
{
config.setProperty("GamePath", selected.getAbsolutePath());
config.store(new FileOutputStream(CONFIG_FILE), null);
}
catch(Exception e)
{
handleException(e);
}
} // end if
}
所有handleException() 所做的只是显示一个带有堆栈跟踪的对话框窗口。
帮助?