【问题标题】:setMaximumSize not working in javasetMaximumSize 在java中不起作用
【发布时间】:2010-10-30 22:45:37
【问题描述】:

我有一个带有 JFrame 的 java 程序

我使用的是绝对定位

这是我的主要功能

public static void main(String[] args) {
    ape Ape = new ape();
    Ape.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Ape.setSize(1000,1000);
    Ape.setMinimumSize(new Dimension(1000,1000));
    Ape.setMaximumSize(new Dimension(1000,1000));
    Ape.setVisible(true);
}

当我运行程序时,我尝试调整它的大小并使窗口变小,但我做不到

当我尝试使窗口更大时,它工作正常,我基本上跳过了setMaximumSize() 函数

我已经阅读过,显然这之前发生过

这是一个已知的错误吗?

如果是这样,我听说我可以制作一个 Window Listener,当我尝试它时,我实现了 WindowListener 所需的功能,但找不到任何东西来解决我的问题

请自己尝试一下,看看会发生什么......

提前致谢

PS...请不要嘲笑我给我的班级起的名字...:)

【问题讨论】:

    标签: java jframe


    【解决方案1】:

    对于 Netbeans 用户,请尝试在 setMaximizedBounds() 中设置最大帧的值,单击帧的属性,您将找到一个选项来定义 setMaximizedBounds 的值。

    【讨论】:

    • 这个 2 岁的回复帮助了我。谢谢
    【解决方案2】:

    http://forums.sun.com/thread.jspa?threadID=5342801:

    这是一个已知的错误:

    也许你可以使用

    Ape.setResizable(false)
    

    改为?

    PS:按照惯例,类名以大写字母开头,变量名以小写字母开头,反之亦然。

    【讨论】:

    • 感谢您的报告,Ape.setResizable 基本上是我想要的,谢谢
    • 我正在搜索此错误是否已解决。我正在使用 jdk1.6.0_45(应用程序是多年前开发的,我正在维护它)。还是bug吗?
    【解决方案3】:

    在我的情况下,我使用了以下方法并且它有效:

        Dimension newDim = new Dimension(width, height);
    
        label.setMinimumSize(newDim);
        label.setPreferredSize(newDim);
        label.setMaximumSize(newDim);
        label.setSize(newDim);
        label.revalidate();
    

    【讨论】:

    • 我不知道该怎么说谢谢你..谢谢你非常感谢。你救了我的脸和一天。重新验证是关键。
    【解决方案4】:

    我是这样解决的:

        frame.setBounds(0, 0, 1480, 910);
        frame.setMinimumSize(new Dimension(1200, 799));
        frame.setMaximumSize(new Dimension(1480, 910));
        frame.setPreferredSize(new Dimension(1480, 910));
        frame.setLocationRelativeTo(null);
        frame.addComponentListener(new ComponentAdapter() {
    
            @Override
            public void componentResized(ComponentEvent e) {
                double w = frame.getSize().getWidth();
                double h = frame.getSize().getHeight();
                if(w > 1480.0 && h > 910.0){
                    frame.setSize(new Dimension(1480, 910));
                    frame.repaint();
                    frame.revalidate();
                }
    
                super.componentResized(e);
            }
    
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 2018-05-15
      • 2015-05-27
      • 2021-09-20
      • 2015-11-23
      • 2014-02-12
      • 2015-01-31
      相关资源
      最近更新 更多