我正在构建一个程序,并在多个操作系统上工作。Windows 10和Windows 7。当我为一个操作系统(无论是Windows 10还是Windows 7)正确设置最小大小时,它可以用于该操作系统,但会破坏另一个操作系统。有没有办法让setMinimumSize调整边框的厚度?或者有一种方法可以获取操作系统上边框的厚度?或者是否有方法将JFrame的最小大小设置为打开时的大小?任何帮助都是非常感谢的。谢谢。
发布于 2016-04-21 01:30:32
不要设置最小尺寸。确定组件的大小是布局管理器的工作。布局管理器将在所有操作系统上完成它的工作。
只需将组件添加到面板/框架中,然后使用:
frame.pack();
frame.setVisible();pack()方法调用布局管理器,以便所有组件都能正确调整大小。
有关更多信息和工作示例,请参阅有关布局管理器的Swing教程中的部分。我建议你书签本教程的教程所有的秋千基础。
我不希望用户能够将帧的大小设置在一定的大小以下。
当应用程序告诉我我可以制作这个框架有多小(大)时,这是非常恼人的。桌面是我的空间,如果我想让它更小(更大),那么你应该不在乎。然后,如果我缺少信息,我可以在以后使帧更大(更小)。您的框架设计应该是灵活的,允许调整大小。
在任何情况下,您都可以通过执行以下操作来设置最小值:
frame.pack();
frame.setVisible();
frame.setMinimumSize( frame.getSize() );发布于 2022-03-14 09:27:06
在构造函数中添加此方法
this.setMinimumSize(new Dimension(width,height));发布于 2017-11-16 03:49:26
我在使用Java 8的macOS上遇到了这样的问题,我希望用户能够调整窗口的大小,但遵守布局管理器计算的最小大小。不幸的是,控制窗口大小的AWT代码只在显式设置的情况下才会查看最小大小。
这是我想出的解决办法。我重写了框架上的doLayout()方法:
@Override
public void doLayout()
{
super.doLayout();
LayoutManager m = getLayout();
if (m != null) {
Dimension d = m.minimumLayoutSize(this);
setMinimumSize(d);
}
}现在,每次重新计算布局时,都会将新的最小大小缓存为显式设置值,以便AWT会注意到它。
https://stackoverflow.com/questions/36757982
复制相似问题