importjava.awt.Dimension;importjava.awt.event.ComponentAdapter;importjava.awt.event.ComponentEvent;importjavax.swing.JFrame;publicclassJFrameResizeTest2extendsJFrame{publ...
import java.awt.Dimension;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
public class JFrameResizeTest2 extends JFrame {
public static void main(String args[]) {
try {
JFrameResizeTest2 frame = new JFrameResizeTest2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public JFrameResizeTest2() {
super();
setBounds(100, 100, 500, 375);
this.setTitle("限制窗口大小变化");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setMinimumSize(new Dimension(400, 300)); // 设置最小值,这个效果比较好,比事件处理的效果好。
this.setMaximumSize(new Dimension(800, 600)); // 不知道为什么设置最大值没效果
//下面的方法只能在鼠标释放后才能检测到窗体大小的改变
/*
this.addComponentListener(new ComponentAdapter() {
public void componentResized(final ComponentEvent e) {
int width = e.getComponent().getWidth();
int height = e.getComponent().getHeight();
if (width > 800) {
width = 800;
}
if (height > 600) {
height = 600;
}
setSize(width, height);
}
});
*/
}
}
我想实现的效果是,用鼠标无法将窗口拖动得过小,也无法将窗口拖动得过大......
方法setMinimumSize()能设置窗口的最小值,setMaximumSize()能设置窗口的最小值,但是从执行效果看,后者其实没有起作用....
对窗体增加监听器后(注释部分),却只能在鼠标释放后判断窗体大小,实现不了限制拖动的功能........
我从网上查到据说可以继承Window类来实现.....请问怎样实现?
理论上,方法setMinimumSize()能设置窗口的最小值,setMaximumSize()能设置窗口的最大值 .
总而言之,是要让窗体可以拖动,但限制拖动的范围......就像命令行提示符的窗口那样....
展开