filedialog

lrpiutwd  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(401)

到目前为止,我已经尝试在一个新的莫哈韦,我的主要卡塔琳娜安装与相同的悬挂结果。打开filedialog的代码片段在一个单独的项目中独立运行,但是如果我在同一个包中创建另一个类并这样调用它,那就是同一个处理—仍然挂起。如果这有什么不同的话,它会在控制器中被调用(我试过jfilechooser,它也挂起了,而且似乎在osx上有挂起的历史。重申一下,我还尝试提取代码,以便将对话框打开到另一个类。)当它到达时,它将挂起 fd.setVisible(true); . 我试过禁用icloud,因为我听说这会导致问题,我也禁用了sips作为测试。我甚至不知道如何进一步调试这个。任何帮助都将不胜感激!

JFrame frame = new JFrame();
            System.setProperty("apple.awt.fileDialogForDirectories", "true");
            FileDialog fd = new FileDialog(frame, "Choose a file", FileDialog.LOAD);
            fd.setVisible(true);
            String filename = fd.getFile();
            System.out.println(filename);
6ojccjat

6ojccjat1#

天啊。我只花了一整天,但我只需要让filedialog在自己的线程上运行。希望这能节省其他noob的时间lol。我的新代码如下:

public class threadTest extends Thread {
    public void run(){  
        JFrame frame = new JFrame();
        System.setProperty("com.apple.macos.use-file-dialog-packages", "true");
        FileDialog fd = new FileDialog(frame, "choose_file", FileDialog.LOAD);
        fd.setVisible(true);
        String filename = fd.getFile();
      }    
}

我这样叫它

threadTest test=new threadTest();   
 test.start();

相关问题