【问题标题】:Disable maximise in jFrame and resizeable using mouse在 jFrame 中禁用最大化并使用鼠标调整大小
【发布时间】:2013-03-11 06:36:57
【问题描述】:

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

【问题讨论】:

  • 除非您编写自己的窗口 UI 委托,否则这在本机 Java 中是不可能的
  • this类似的答案

标签: java swing jframe


【解决方案1】:

我个人想不出允许调整大小但不允许最大化的理由,但这里有一个示例,说明如何在允许调整大小和最小化的同时防止 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);

【讨论】:

  • 在windows下没问题,在mac里可以最大化
【解决方案2】:

您可以采取以下步骤:

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

见附图:

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 对不起,我还需要最小化窗口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多