希望JFrame
没有最大化按钮,但仍能使用鼠标(点击并拖动jFrame
边框)进行调整大小。使用setResizable(false)
只会禁用最小化按钮,而无法使用鼠标调整大小。
个人认为允许调整大小而不允许最大化没有什么意义,但以下是一个示例,演示如何防止JFrame最大化,同时仍允许调整大小和最小化。在Windows上测试过,在其他平台上未经测试。使用setMaximizedBounds()方法可以将全屏Flash最小化。
final JFrame jFrameNoMax = new JFrame() {
{
setMaximizedBounds(new Rectangle(0, 0));
addWindowStateListener(new WindowStateListener() {
public void windowStateChanged(final WindowEvent e) {
if (e.getNewState() == MAXIMIZED_BOTH) {
setExtendedState(NORMAL);
}
}
});
}
};
// Tester
jFrameNoMax.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jFrameNoMax.setSize(300, 300);
jFrameNoMax.setLocation(300, 300);
jFrameNoMax.setVisible(true);
一个选择是使用JDialog
而不是JFrame
。这允许窗口手动调整大小,但不能最大化。这样做的唯一问题是您会失去最小化和最大化按钮。这可能对您的应用程序有或没有问题。