我有一个显示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;
}
}
}