问题描述
我正在尝试限制 JFrame
的最大大小。但是,这只适用于 Linux。在 Windows 下,JFrame
可以自由调整大小。代码很简单:
public class TestMaxSize extends javax.swing.JFrame {
public TestMaxSize() {
setSize(new java.awt.Dimension(400,400));
setDefaultCloSEOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMaximizedBounds(new java.awt.Rectangle(0,400,400));
setMaximumSize(new java.awt.Dimension(400,400));
setVisible(true);
}
public static void main(String args[]) {
new TestMaxSize();
}
}
解决方法
来自方法setMaximizedBounds
的{{3}}
注意,给定的最大化边界用作对本机系统的提示,因为底层平台可能不支持设置最大化窗口的位置和/或大小。如果是这种情况,提供的值不会影响框架在最大化状态下的外观。
例如,虽然 JFrame
扩展了 java.awt.Component
,但它与 JPanel
不同。您会注意到它的超类 java.awt.Window
覆盖了方法 setMinimumSize
。 Window
类与主机操作系统的窗口管理器交互。因此,该窗口管理器需要支持限制 Window
的最大大小。在Windows平台上,这似乎不是一件简单的事情。我只能找到一个旧的第三方实用程序,它允许您为所有窗口配置最大大小。请参阅此网页:javadoc 来自近七年前。