import javax.swing.UIManager;
import java.awt.*;public class Student 
{
  boolean packFrame = false;//构造函数
  public Student() 
  {
    MainFrame frame = new MainFrame();//新窗口
    if (packFrame) 
    {
      frame.pack();//调整此窗口的大小,以适合其子组件的首选大小和布局
    }
    else 
    {
      frame.validate();//验证此容器及其所有子组件
    }
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕大小,Dimension封装单个对象中组件的宽度和高度(精确到整数)。
    Dimension frameSize = frame.getSize();//窗口大小
    if (frameSize.height > screenSize.height) 
    {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) 
    {
      frameSize.width = screenSize.width;
    }
    frame.setLocation( (screenSize.width - frameSize.width) / 2,
                      (screenSize.height - frameSize.height) / 2);//调整窗口大小是屏幕的一半
    frame.setVisible(true);//窗口可见
  }
//main方法
  public static void main(String[] args) 
  {
    try //扑捉异常
    {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//将外观设置为系统外观
    }
    catch (Exception e) 
    {
      e.printStackTrace();//处理异常
    }
    new Student();
  }
}

解决方案 »

  1.   

    此代码功能是:新产生一个student窗口,窗口大小是屏幕大小的一半
    并且此student窗口会自动根据窗口内容调整大小
      

  2.   

    汗。。js,java会一点的好像都能看懂,但是java做页面现在还有这么做的么
      

  3.   

    frame.setLocation( (screenSize.width - frameSize.width) / 2, 
                          (screenSize.height - frameSize.height) / 2);//调整窗口大小是屏幕的一半 
    这句的注释错了javadoc里的:public void setLocation(int x,
                            int y)
    Moves this component to a new location. The top-left corner of the new location is specified by the x and y parameters in the coordinate space of this component's parent.  这句话不是“调整窗口大小是屏幕的一半”,而是让该窗口的位置在屏幕的正中窗口的大小是这两句话设置的:
      if (frameSize.height > screenSize.height)  
        { 
          frameSize.height = screenSize.height; 
        } 
        if (frameSize.width > screenSize.width)  
        { 
          frameSize.width = screenSize.width; 
        } 如果窗口的初始大小比屏幕大,就缩小为屏幕那么大
    取决于你其他设置窗口初始大小的地方了,这段代码里没有