1

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

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

4

2 回答 2

1

您需要调用 pack(),然后调用 setSize()。直到它被打包,它才被意识到。在 setVisible() 之前打包。顺便说一句, pack() 将调整对话框的大小,以便内容获得其首选大小,这可能是您想要的。

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

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

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

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

于 2009-08-14T04:54:18.337 回答
1

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

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

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

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

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

于 2009-08-14T13:46:54.830 回答