禁用jFrame中的最大化并使用鼠标调整大小

时间:2013-03-11 06:36:57

标签: java swing jframe

JFrame隐藏或没有最大化按钮,但应该能够使用鼠标重新调整大小(在jFrame边框上单击并拖动)。 setResizable(false)仅禁用最小化按钮,但无法使用鼠标重新调整大小。

3 个答案:

答案 0 :(得分:2)

我个人无法想到允许调整大小而不允许最大化的原因,但这里是一个如何防止最大化JFrame同时仍然允许调整大小和最小化的示例。在Windows中测试,在所有其他平台上未经测试。使用setMaximizedBounds()最小化全屏闪烁。

    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);

答案 1 :(得分:1)

您可以执行以下步骤:

- 右键单击​​JFrame - 选择属性 - 取消选中可调整大小的复选框 - 关闭属性 - 运行程序

参见附图: Freeze maximize button

答案 2 :(得分:0)

一种选择可能是使用JDialog而不是JFrame。这允许窗口可手动调整大小但不能最大化。这样做的唯一问题是你失去了最小化和最大化按钮。这可能是您的应用程序的问题,也可能不是。