Java FileDialog以编程方式设置大小

时间:2009-08-14 04:43:40

标签: java awt

我想显示一个Java FileDialog,并将其初始大小设置为合理的值(它不显示最大化按钮,很多用户可能不知道你可以使用alt-space X代替)。我尝试了setBounds,但它没有做任何事情,我没有看到最大化它的方法;我错过了什么?

更新:至少在Windows上,系统文件对话框会记住大小并最大化状态甚至跨程序调用,因此用户只需将其设置为所需的大小一次,它就会保持这种状态;这似乎已经足够了,所以我会留下它。

2 个答案:

答案 0 :(得分:1)

您需要调用pack()然后调用setSize()。直到它被打包,它没有实现。在setVisible()之前执行包。 BTW,pack()将调整对话框的大小,使内容得到他们的首选大小,这可能就是你想要的。

我使用的是AWT FileDialog,并且没有大小问题(我在尝试正确定位它时遇到了问题,但这是一个单独的问题)。我的代码很明显:

dlg=new FileDialog(owner,"Select File to Load",FileDialog.LOAD);
dlg.setFile(null);
dlg.setVisible(true);

根据我的经验,默认大小非常合理。当然它可以用鼠标调整大小 - 因为它是一个对话框,而不是一个框架,它不是最大化的。

我刚刚在我的dlg.setVisible()之后尝试了一些setSize()的变体,并且它完全忽略了它们,也许是因为它是一个重量级的窗口,它有自己关于它的大小和位置的想法。我必须承认,我一直对FilenameFilter在Windows中不起作用感到惊讶,这听起来像是一个奇怪的限制。

答案 1 :(得分:1)

首先,我建议你从摇摆中使用JFileChooser(除非你出于某种原因限制为awt)。它有更多的选择。

其次,它们都从具有setize方法的Component继承。您可以获取用户屏幕的大小,并将大小设置为该百分比。

你是否绝对想要最大化它?如果是这样,只需将大小设置为用户屏幕的大小。

您可以通过以下方式获取屏幕尺寸:Dimension dim = Toolkit.getDefaultToolkit()。getScreenSize();

如果这不能回答你的问题,请更准确。