Java:Bug:JFileChooser只是偶尔出现

Java:Bug:JFileChooser只是偶尔出现,java,file,jfilechooser,Java,File,Jfilechooser,我有一个打开JFileChooser的方法,允许用户选择一个文件,以便稍后复制该文件的URL。但是,JFileChooser只在运行程序时出现(?) 我不明白代码有什么问题。提前谢谢 更清楚的是:JFileChooser的UI不会显示 编辑:我知道该方法正在运行,因为当我放入一个System.out.println(“//something”);在方法的开始,它是有效的 如果我把System.out.println(“//某物”)在fileChooser和intuserselection之间,将

我有一个打开JFileChooser的方法,允许用户选择一个文件,以便稍后复制该文件的URL。但是,JFileChooser只在运行程序时出现(?)

我不明白代码有什么问题。提前谢谢

更清楚的是:JFileChooser的UI不会显示

编辑:我知道该方法正在运行,因为当我放入一个
System.out.println(“//something”)
;在方法的开始,它是有效的

如果我把
System.out.println(“//某物”)
fileChooser
intuserselection
之间,将显示UI


我曾经遇到过类似的问题,我甚至无法描述我当时的沮丧

试试这个:

  • 重新启动计算机
  • 在eclipse中:文件-->重新启动
  • Clean:C:\eclipse\eclipse.exe-vm“C:\Program Files\Java\jdk1.6.0\u 24\bin”-Clean
  • showOpenDialog(parentFrame)
    更改为
    showOpenDialog(null)
    (正如用户所建议的,不必要的事情往往会产生问题)
  • 再次运行程序

  • 我曾经遇到过类似的问题,我甚至无法描述我当时的沮丧

    试试这个:

  • 重新启动计算机
  • 在eclipse中:文件-->重新启动
  • Clean:C:\eclipse\eclipse.exe-vm“C:\Program Files\Java\jdk1.6.0\u 24\bin”-Clean
  • showOpenDialog(parentFrame)
    更改为
    showOpenDialog(null)
    (正如用户所建议的,不必要的事情往往会产生问题)
  • 再次运行程序

  • 你能展示一些你如何调用这段代码的代码吗?它围绕着
    公共静态字符串loadGlosFilManuell(){}
    在打开文件选择器时,你在控制台上有没有遇到任何问题/stacktrace为什么要创建父帧?如果父帧不是已经存在的帧,则可以使用
    showOpenDialog(null)
    。@VivekSingh否。不会发生任何情况。我真的不明白为什么。程序一直在运行,没有发生任何事情。您能再显示一些代码吗?您如何调用这段代码?它围绕着
    public static String loadGlosFilManuell(){}
    打开文件选择器时,控制台上是否有任何问题/stacktrace为什么要创建父帧?如果父帧不是已经存在的帧,则可以使用
    showOpenDialog(null)
    。@VivekSingh否。不会发生任何情况。我真的不明白为什么。程序一直在运行,没有发生任何事情。是的!!非常感谢!对非常感谢!
        String readThisGlos = null;
    
        JFrame parentFrame = new JFrame();
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setDialogTitle("Choose");
        int userSelection = fileChooser.showOpenDialog(parentFrame);
        if (userSelection == JFileChooser.APPROVE_OPTION) {
            File fileToSave = fileChooser.getSelectedFile();
    
            readThisGlos = fileToSave.getAbsolutePath();
        } else {
            // Error
        }
        System.out.println(readThisGlos);
        return readThisGlos;