首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置JFrame的最小大小并使其调整帧厚?

如何设置JFrame的最小大小并使其调整帧厚?
EN

Stack Overflow用户
提问于 2016-04-21 01:26:35
回答 3查看 1.9K关注 0票数 1

我正在构建一个程序,并在多个操作系统上工作。Windows 10和Windows 7。当我为一个操作系统(无论是Windows 10还是Windows 7)正确设置最小大小时,它可以用于该操作系统,但会破坏另一个操作系统。有没有办法让setMinimumSize调整边框的厚度?或者有一种方法可以获取操作系统上边框的厚度?或者是否有方法将JFrame的最小大小设置为打开时的大小?任何帮助都是非常感谢的。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-21 01:30:32

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

只需将组件添加到面板/框架中,然后使用:

代码语言:javascript
复制
frame.pack();
frame.setVisible();

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

有关更多信息和工作示例,请参阅有关布局管理器的Swing教程中的部分。我建议你书签本教程的教程所有的秋千基础。

我不希望用户能够将帧的大小设置在一定的大小以下。

当应用程序告诉我我可以制作这个框架有多小(大)时,这是非常恼人的。桌面是我的空间,如果我想让它更小(更大),那么你应该不在乎。然后,如果我缺少信息,我可以在以后使帧更大(更小)。您的框架设计应该是灵活的,允许调整大小。

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

代码语言:javascript
复制
frame.pack();
frame.setVisible();
frame.setMinimumSize( frame.getSize() );
票数 5
EN

Stack Overflow用户

发布于 2022-03-14 09:27:06

在构造函数中添加此方法

代码语言:javascript
复制
    this.setMinimumSize(new Dimension(width,height));
票数 0
EN

Stack Overflow用户

发布于 2017-11-16 03:49:26

我在使用Java 8的macOS上遇到了这样的问题,我希望用户能够调整窗口的大小,但遵守布局管理器计算的最小大小。不幸的是,控制窗口大小的AWT代码只在显式设置的情况下才会查看最小大小。

这是我想出的解决办法。我重写了框架上的doLayout()方法:

代码语言:javascript
复制
@Override
public void doLayout()
{
    super.doLayout();

    LayoutManager m = getLayout();
    if (m != null) {
        Dimension d = m.minimumLayoutSize(this);
        setMinimumSize(d);
    }
}

现在,每次重新计算布局时,都会将新的最小大小缓存为显式设置值,以便AWT会注意到它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36757982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档