我有一个应用程序,我想显示swt文件对话框,但在定义的位置(我希望它显示在某处)。我没有得到任何方法。对此有任何帮助... ...
答案 0 :(得分:1)
目前,API不支持设置FileDialog
的位置。
但是有一点黑客/解决方法。
您只需创建一个不可见的Shell
并设置位置即可。 FileDialog
根据父级确定其位置。
知道setLocation
上Shell
的确切坐标似乎有点复杂,但是,我留给你做一些排列和组合来了解它们。
以下是解决问题的代码
public static String openNewShellDialog(Display display)
{
final Shell shell = new Shell(display , SWT.APPLICATION_MODAL);
shell.setLayout(new GridLayout(1, false));
System.out.println(display.getPrimaryMonitor().getClientArea());
shell.setLocation(616, 500); //It seems the location is relative to the center of the Shell w.r.t client area
shell.setSize(0,0);
shell.setVisible(false);
shell.open();
FileDialog d = new FileDialog(shell);
String s = d.open();
shell.dispose ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
return s;
}
答案 1 :(得分:0)
不是FileDialog#setFilterPath()
您要找的是什么?:
将对话框将使用的目录路径设置为参数,该路径可以为null。 此路径中的文件名将显示在对话框中,根据过滤器扩展名进行过滤。如果字符串为null,则将使用操作系统的默认过滤器路径。
答案 2 :(得分:0)
在shell上显示FileDialog
时,您可以打开文件对话框,然后获取父shell的子shell(shell.getShells()
)以找出文件对话框的shell。现在你应该能够改变它的位置。