setMaximumSize在java中不起作用

我有一个带有JFrame的java程序

我正在使用绝对定位

这是我的主要function

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所需的function,却找不到任何解决我问题的方法

请亲自试试看看会发生什么……

提前致谢

PS …请不要笑我给我class级的名字…… 🙂

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

这是一个已知的错误:

也许你可以使用

 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的值。