如何设置 JFrame 的最小尺寸并使其根据框架厚度进行调整?

Gna*_*hal 1 java swing

我正在构建一个程序并在多个操作系统上运行它。Windows 10 和 Windows 7。当我为 Windows 10 或 Windows 7 中的一个正确设置最小大小时,它适用于该操作系统,但会扰乱其他操作系统。有没有办法让 setMinimumSize 调整边框厚度?或者有没有办法获得该操作系统上边框的厚度?或者有没有办法将 JFrame 的最小大小设置为打开时的大小?任何帮助表示赞赏。谢谢。

cam*_*ckr 5

不要设置最小尺寸。布局管理器的工作是确定组件的大小。布局管理器将在所有操作系统上完成其工作。

您需要做的就是将组件添加到面板/框架中,然后使用:

frame.pack();
frame.setVisible();
Run Code Online (Sandbox Code Playgroud)

pack()方法调用布局管理器,以便正确调整所有组件的大小。

请阅读 Swing 教程中有关布局管理器的部分,以获取更多信息和工作示例。我建议您为教程添加书签,以获取所有 Swing 基础知识的教程。

我不希望用户能够将框架的大小设置为低于特定大小。

当应用程序告诉我可以将框架制作成多小(大)时,这是非常烦人的。桌面是我的空间,如果我想让它变小(变大)那么你不用关心。如果我缺少信息,我可以稍后将框架放大(缩小)。您的框架设计应该灵活以允许调整大小。

在任何情况下,您都可以通过执行以下操作来设置最小值:

frame.pack();
frame.setVisible();
frame.setMinimumSize( frame.getSize() );
Run Code Online (Sandbox Code Playgroud)