繁体   English   中英

显示JFileChooser时发生NullPointerException

[英]NullPointerException when showing JFileChooser

我用以下代码片段显示JFileChooser:

public File getDestination() {
    JFileChooser chooser = new JFileChooser();
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int option = chooser.showSaveDialog(null);
    if(option == JFileChooser.APPROVE_OPTION) {
        return chooser.getSelectedFile().getAbsolutePath();
    }
    return new File(".");
}

通常,第一次显示时,它会显示并正常工作。 第二次,它将始终抛出此异常:

Exception in thread "Basic L&F File Loading Thread" java.lang.NullPointerException
    at sun.awt.shell.Win32ShellFolder2.pidlsEqual(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2.equals(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2.isFileSystemRoot(Unknown Source)
    at sun.awt.shell.ShellFolder.isFileSystemRoot(Unknown Source)
    at javax.swing.filechooser.FileSystemView.isFileSystemRoot(Unknown Source)
    at javax.swing.filechooser.WindowsFileSystemView.isTraversable(Unknown Source)
    at javax.swing.JFileChooser.isTraversable(Unknown Source)
    at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run0(Unknown Source)
    at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run(Unknown Source)

Java -version说:

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

我在这里找到的线程说我应该降级Java版本。 我应该听从他们的建议,还是我做错了什么?

此问题在版本1.6u21中已修复

参见此处: http : //bugs.sun.com/bugdatabase/view_bug.do?bug_id=6940843

看起来确实是版本问题/回归。 因此,答案是:听取他们的建议,您没有做错任何事情;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM