Java JFileChooser有时会挂起

Java JFileChooser有时会挂起,java,jfilechooser,Java,Jfilechooser,我遇到了以下线程中描述的“挂起JFileChooser”问题: 我使用的是JVM1.6.0_07-b06。它发生在Windows XP和Windows Vista上 有人找到解决方法了吗?我自己也遇到过,更新没有帮助。奇怪的是,从我的桌面(JFileChooser的默认位置)删除所有zip文件(特别是大文件)就解决了这个问题。有一个错误,如果你将网络驱动器映射到桌面上,它有时会挂在JFileChooser上。这可能是连接网络驱动器的捷径。类似的东西…应该是.10更新修复了与zipfile相

我遇到了以下线程中描述的“挂起JFileChooser”问题:

我使用的是JVM1.6.0_07-b06。它发生在Windows XP和Windows Vista上


有人找到解决方法了吗?

我自己也遇到过,更新没有帮助。奇怪的是,从我的桌面(JFileChooser的默认位置)删除所有zip文件(特别是大文件)就解决了这个问题。

有一个错误,如果你将网络驱动器映射到桌面上,它有时会挂在JFileChooser上。这可能是连接网络驱动器的捷径。类似的东西…

应该是.10更新修复了与zipfile相关的问题。

是的,这是一个bug,但我相信Java的最新版本不再有它。
有一些变通方法(尽管它们都是肮脏的黑客):

  • 使用线程等待初始化
  • 重用相同的JFileChooser(将其存储在变量中),而不是创建新的JFileChooser。如果可能,延迟初始化它们:

  • 这样你的用户就不用等那么久。。。但他们仍然需要等待。真正解决此问题的唯一方法是更新您的JRE。

    我的桌面上或文件选择器启动位置中没有任何zip文件。抱歉,这没有帮助。仅供参考,这里是关于桌面上JFileChooser和大型zip文件的讨论链接哦,伙计,这对我很有帮助。我不明白Java现在怎么会变得如此荒谬。我在大学/业余爱好和ofc工作中已经用了9年了,它真的很烦人。我想第二个软盘驱动器(记得吗?)也可能是个问题。
    
    public static JFileChooser chooser = null;
    
    public static void doSomething(){
        if(chooser==null)
             chooser = new JFileChooser();
        //use JFileChooser
    }