为什么在JFileChooser中取消选项会抛出异常?

时间:2015-01-23 17:58:31

标签: java user-interface jfilechooser

我正在尝试学习GUI编程,但我没有找到原因以及如何修复我的代码。 我的问题是我使用JFileChooser打开一个文件,当我想取消该选项或关闭JFileChooser窗口时,它会抛出这个异常:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at myForm.OpenFile(myForm.java:296)
at myForm.openVActionPerformed(myForm.java:230)
at myForm.access$1(myForm.java:222)
at myForm$2.actionPerformed(myForm.java:102)

这是我的代码:

private void OpenFile() {
    try {
        File thisFile;
        JFileChooser of = new JFileChooser();
        int option = of.showOpenDialog(of);
        while (!of.getSelectedFile().getName().endsWith(".xml")) {
            String error = "Error, Please select xml file";
            JOptionPane.showMessageDialog(this, error, "Wrong type of file", JOptionPane.INFORMATION_MESSAGE);
            of = new JFileChooser();
            option = of.showOpenDialog(of);
        }
        if (option == JFileChooser.APPROVE_OPTION){
            thisFileName = of.getSelectedFile().getPath();
            thisFile =  new File(thisFileName);
            pointsList.clear();
        }
        else {
            Iterator<Point> i = pointsList.iterator();
            while(i.hasNext()) {
                p = i.next();
                drewPoints(p.x, p.y);
            }
            return;
        }
        //.... the next lines irrelevant for my question...

1 个答案:

答案 0 :(得分:0)

你需要在while语句之前加上它。

if (option == JFileChooser.APPROVE_OPTION){

或作为while语句的一部分,因此当有取消操作时它也会停止。