如何禁用JFrame的最大化Button,但是又可以resize

来源:互联网 发布:贷款意向客户数据资源 编辑:程序博客网 时间:2024/05/22 03:31

目前我还实现不了手动拖大拖小Frame
我写了个通过程序代码改变窗体大小的程序
注意45行代码调用:f.setResizable(false);


代码如下:

import   javax.swing.*;
import   java.awt.*;
import   java.awt.event.*;

public   class   SimpleFrameTest   implements   ComponentListener  
{    
      public   void   componentMoved(ComponentEvent   e)   {
Component   c   =   e.getComponent();
Point   p   =   c.getLocation();
System.out.println( "Component   moved   to   ( "   +   p.x   +   ",   "
+   p.y   +   ") ");
}

public   void   componentResized(ComponentEvent   e)   {
Component   c   =   e.getComponent();
Dimension   d   =   c.getSize();
System.out.println( "Component   resized:   width   "   +   d.width   +
",   height   "   +   d.height);
}

public   void   componentShown(ComponentEvent   e)   {
System.out.println( "Component   made   visible ");
}

public   void   componentHidden(ComponentEvent   e)   {
System.out.println( "Component   made   invisible ");
}
       
public   static   void   main(String[]   args)
        {    
                JFrame   f   =   new   JFrame( "Simple   frame   test ");
                f.setSize(300,   200);
f.addWindowListener(new   WindowAdapter()   {
public   void   windowClosing(WindowEvent   evt)   {
System.exit(0);
}
});

f.setVisible(true);
                f.setResizable(false);
               
try   {
Thread.sleep(5000); //   Delay   a   bit
f.getContentPane().setLayout(null);
Thread.sleep(5000); //   Delay   a   bit
f.setSize(100,   100); //   Change   size
Thread.sleep(5000); //   Delay   a   bit
f.setSize(200,   200); //   Move   ourselves
Thread.sleep(5000); //   Delay   a   bit
Thread.sleep(5000); //   Delay   a   bit
f.setSize(300,   400); //   Move   ourselves
Thread.sleep(5000); //   Delay   a   bit
f.setSize(600,   600); //   Change   size
Thread.sleep(5000);           //   Delay   a   bit
                        f.setSize(800,   800);

                        }   catch   (Exception   e)   {
System.out.println(e);
}

System.exit(0);
}
}
先f.seResizable(false);
之后根据用户触发的事件判断变化seResizable(false);or   seResizable(true);
先f.seResizable(true);改变后在f.seResizable(false);