setMaximumSize在java中不起作用
我有一个带有JFrame的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
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年的回答帮助了我。谢谢