java中的DirectoryDialog隐藏shell

java中的DirectoryDialog隐藏shell,java,swing,shell,filedialog,Java,Swing,Shell,Filedialog,我有一个显示DirectoryDialog的方法。但我称之为JFrame。当我调用下面的方法时,它会打开一个“Shell”,基本上类似于另一个窗口,然后弹出DirectoryDialog 我如何摆脱这个JFrame般的外壳。我已经有了一个JFrame,我希望JFrame是父对象,而不是我需要另外创建的一些随机shell 换句话说,我需要去掉调用此方法时弹出的额外窗口 public File[] fileDialog(boolean folder){ if(folder){

我有一个显示DirectoryDialog的方法。但我称之为JFrame。当我调用下面的方法时,它会打开一个“Shell”,基本上类似于另一个窗口,然后弹出DirectoryDialog

我如何摆脱这个JFrame般的外壳。我已经有了一个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;
        }
    }
}

为了更快地获得更好的帮助,发布一个(MCTRE).BTW-DYM?也许您最好使用一个
JFileChooser
,使用本机PLAF(它更像,但仍然不完全像,标准的Windows文件选择器)或基于的自定义Swing组件。