9

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

4

3 回答 3

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);
于 2013-03-12T05:52:08.253 回答
2

您可以采取以下步骤:

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

见附图: 冻结最大化按钮

于 2016-06-22T03:29:37.987 回答
0

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

于 2013-03-12T04:10:19.667 回答