Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
setMaximumSize在java中不起作用_Java_Jframe - Fatal编程技术网

setMaximumSize在java中不起作用

setMaximumSize在java中不起作用,java,jframe,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.set

我有一个带有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()
函数

我读过很多书,很明显这以前发生过

这是已知的bug吗

如果是这样,我听说我可以制作一个窗口监听器,当我尝试它时,我实现了WindowListener所需的功能,但找不到任何解决问题的方法

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

提前谢谢

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

见:

这是一个已知的错误:

也许你可以用

Ape.setResizable(false)
相反


PS:给以大写字母开头的类命名,给以小写字母开头的变量命名,这是一种惯例,反之亦然。

在我的例子中,我使用了以下方法,效果很好:

    Dimension newDim = new Dimension(width, height);

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

我是这样修复的:

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

    });

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

感谢您的报告,并且Ape.setResizeable基本上就是我想要的。如果此错误得到解决,我正在搜索。我正在使用jdk1.6.045(应用程序是多年前开发的,我正在维护它)。还是个虫子吗?我不知道该怎么感谢你。。谢谢,非常感谢。你救了我的脸和一天。重新验证是关键。这个2年的回答帮助了我。谢谢