setMinimumSize可以用,但是,setMaxmunSize不能用。如:
import javax.swing.*;
import java.awt.*;
public class Ctest extends JFrame
{
Ctest()
{
JPanel pan = new JPanel();
this.getContentPane().add(pan);
setVisible(true);
setSize(100,100);
this.setMinimumSize(new Dimension(300,300));
}
public static void main(String args[])
{
new Ctest();
}
}
为什么?

解决方案 »

  1.   


    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    import javax.swing.JFrame;public class JFrameTest {
    public static void main(String[] args) {
    final Dimension max = new Dimension(500, 500);
    final Dimension min = new Dimension(300, 300); JFrame f = new JFrame();
    f.setMaximizedBounds(new Rectangle(max));
    f.addComponentListener(new ComponentAdapter() {
    public void componentResized(ComponentEvent e) {
    Component c = e.getComponent();
    Dimension size = c.getSize();
    Dimension d = c.getSize(); d.width = Math.max(min.width, d.width);
    d.height = Math.max(min.height, d.height);
    d.width = Math.min(max.width, d.width);
    d.height = Math.min(max.height, d.height); if (!d.equals(size)) {
    c.setSize(d);
    }
    }
    }); f.setSize(400, 400);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }