调用JFrame 中的setResizable()
例如:
JFrame f = new JFrame("Fixed size");
f.seResizable(false);
此时窗体最大化按钮不显示或无效
通过程序代码仍然可以改变大小,此限制只是用于用户。
例如:
JFrame f = new JFrame("Fixed size");
f.seResizable(false);
此时窗体最大化按钮不显示或无效
通过程序代码仍然可以改变大小,此限制只是用于用户。
no reasonplease write a programme to prove it
我写了个通过程序代码改变窗体大小的程序
注意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);
}
}
代码如下: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);
}
}
之后根据用户触发的事件判断变化seResizable(false);or seResizable(true);
就OK了!