public class Main
{
boolean packFrame = false;
public Main()
{
JFrame frame = new JFrame();
frame.setSize(700,500);
if (packFrame)
{
frame.pack();
}
else
{
frame.validate();
}
frame.setVisible(true);
}
请问这里为什么要设置packFrame,起到什么作用呢?
------解决方案--------------------
光看这段代码好像有问题 ‘开始既然设置了 boolean packFrame = false;为什么还要用if来判断,不是每次都是false吗? ’ 呵呵 我想packFrame是一个标志 标志着在创建窗口对象时是不是要pack此窗口 这个类应当会有两个方法 setPackFrame()和isPackFrame()来设置和获取这个标志 但是好像只有他们都是静态的太可以啦 在构建对象之前调用静态方法先设置这个标志 而这个标志也是静态的
pack():调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window。
validate():
使用 validate 方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。