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();
}
}
为什么?
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();
}
}
为什么?
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);
}
}