setMaximumSize在java中不起作用

时间:2010-10-30 22:45:38

标签: java jframe

我有一个带有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 ...请不要笑我给我班级的名字......:)

4 个答案:

答案 0 :(得分:12)

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

这是一个已知的错误:

也许你可以使用

Ape.setResizable(false)

代替?

PS:给出以大写字母开头的类名称和带有小写字母的变量名称是一种约定,反之亦然。

答案 1 :(得分:1)

在我的情况下,我使用了以下内容并且有效:

    Dimension newDim = new Dimension(width, height);

    label.setMinimumSize(newDim);
    label.setPreferredSize(newDim);
    label.setMaximumSize(newDim);
    label.setSize(newDim);
    label.revalidate();

答案 2 :(得分:0)

我这样修好了:

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

    });

答案 3 :(得分:0)

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