Java Swing的错误消息

时间:2012-07-19 14:56:14

标签: java swing netbeans

我有一个关于使用Java Swing处理错误条件的查询。

我正在使用Netbeans开发一个简单的Java Swing应用程序。它是加载一个文本文件,然后根据文本文件中的数字运行计算。主Swing类包含JFrame和JPanel。

我将文件加载代码作为单独的类文件。它将读取的行数和一个数字列表返回给主Swing应用程序。

我意识到如果文件读取失败(即try - > catch(Exception ex)),整个应用程序将崩溃。处理上述场景导致的错误的最佳方法是什么?也就是说,文件加载代码崩溃,我不希望整个程序崩溃。我希望程序说文件已损坏并等待用户加载新文件。

有什么想法吗?

养乐多

3 个答案:

答案 0 :(得分:4)

当您捕获异常时,请运行:

JOptionPane.showMessageDialog("File is corrupted. Please select a new file.");

然后再次显示文件对话框。

最好将此作为循环,在文件无效时继续。如果存在损坏,那么只要设置了标志,就设置一个布尔标志并循环,而不是抛出异常。这样,当找到一个好文件时,while循环将终止。

示例:

public static void main(String[] args){
    boolean goodFile = false;

    while (!goodFile){
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog();

        goodFile = processFile(chooser.getSelectedFile());
    }
}

private boolean processFile(File file){
    //do you stuff with the file

    //return true if the processing works properly, and false otherwise    
}

答案 1 :(得分:1)

耶 问题在于您的IO阅读概念 while循环正在读取文件的末尾,依此类推。 防止你可以使用缓冲读卡器 并使用此代码

String line = null
while((line = reader.readLine())!= null) {
// do stuf
}

如果您在处理读取线时遇到此问题 您只需要通过扩展Exception类并在catch块中抛出该异常来创建自己的异常类 将消息设置为自定义异常类后,您可以将该消息设置为

 JOptionPane.showMessageDialog(null,"message here"); //showMessageDialog is a static method

确定

答案 2 :(得分:0)

您只需捕获异常并将条件放入catch块中。如果文件包含应用程序要处理的其他内容,则可以调用将重新处理其他文件的方法。

新文件操作的新进程的主要处理将从catch块开始。因此,通过这种方式,您将使用java抛出的异常以全新的方式重新启动应用程序,而不是将您的应用程序从零级别重新启动。