1

我正在使用 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() 所做的只是显示一个带有堆栈跟踪的对话框窗口。

帮助?

4

3 回答 3

3

之后您使用chooseFile提示用户输入文件,您尝试从其他文件选择器选择FOV 读取文件

int returnVal = chooseFile.showOpenDialog(settingsWindow);
    if(returnVal == JFileChooser.APPROVE_OPTION)
    {
        File selected = chooseFOV.getSelectedFile();
于 2012-09-16T21:22:20.833 回答
0

int returnVal = chooseFile.showOpenDialog(settingsWindow); 文件选择 = chooseFOV.getSelectedFile();

您有两个变量,可能还想chooseFile在第二行使用。

于 2012-09-16T21:19:42.360 回答
0

什么是选择FOV?您似乎在使用 chooseFile 作为对话框,所以它是有选择的。

于 2012-09-16T21:22:14.483 回答