DirectoryDialog在java中隐藏shell

时间:2014-02-03 22:39:33

标签: java swing shell filedialog

我有一个显示DirectoryDialog的方法。但我在JFrame中调用它。当我调用下面的方法时,它会打开一个“Shell”,它基本上就像另一个窗口,然后弹出DirectoryDialog。

如何摆脱这个类似JFrame的shell。我已经有了一个JFrame,我希望JFrame成为父级,而不是我需要另外创建的一些随机shell。

换句话说,我需要摆脱调用此方法时弹出的附加窗口。

public File[] fileDialog(boolean folder){
    if(folder){
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.open();

        DirectoryDialog dialog = new DirectoryDialog(shell);
        dialog.setFilterPath("C:\\"); // Windows specific
        String file = dialog.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
        if(file == null)
            return new File[0];
        else if(file.length() == 0)
            return new File[1];
        else{
            File[] files = new File[1];
            files[0] = new File(file);
            return files;
        }
    }
}

0 个答案:

没有答案