package swing; 


import java.awt.Color; 

import java.awt.Container; 


import javax.swing.JFrame; 

import javax.swing.JLabel; 

import javax.swing.SwingConstants; 

import javax.swing.WindowConstants; 


/* 

 * 
 常用窗体
 * 窗体作为Swing应用程序中组件的承载体,处于非常重要的位置。
 * Swing中常用的窗体包括JFrame和JDialog 

 */ 

public class JFrameExample1 extends JFrame{//定义一个类继承JFrame类 

    /* 

     * 
JFrame窗体
     * JFrame窗体是一个容器,是Swing程序中各个组建的载体,
     * 可以将JFrame看作是承载Swing各组件的容器
     * 在开发应用程序时 可以通过继承java.swing.JFrame类创建一个窗体
     * 在窗体中添加组件,同时为组件设置事件。
     * 由于该窗体继承了JFrame类,因此拥有最大化,最小化和关闭等按钮 

     * 

     * 

     
* JFrame在程序中语法格式
     * JFrame jf=new JFrame(title);
     * Container con=jf.getContentPane();
     * jf:JFrame类的对象
     * con:Container类的对象,可以使用JFrame对象调用getContentPane()获取 

     * 

     * 
Swing组件的窗体通常与组件和容器相关,所以在DFrame对象创建完成后,
     * 需要调用getContentPane()将窗体转换为容器,然后在容器中添加组件或设置
     * 布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用
     * 来自Container类的add()方法进行设置
     * container.add(new JButton("按钮"));//JButton按钮组件
     * container.remove(new JButton("按钮"));//使用Container类的remove()
     * 将这些组件从容器中删除 

     */ 

   
 public void CreateJFrame(String title) {//定义一个CreateJFrame()方法 

       
 //实例化一个JFrame对象
        JFrame jf=new JFrame(title);
        //获取一个容器
        Container con=jf.getContentPane();
        //创建一个JLabel标签
        JLabel jl=new JLabel("这是一个JFrame窗体");
        //使标签上的文字居中
        jl.setHorizontalAlignment(SwingConstants.CENTER);
        //将将标签添加到容器中
        con.add(jl);
        //设置容器的背景颜色
        con.setBackground(Color.white);
        //设置窗体可视
        jf.setVisible(true);
        //设置窗体大小
        jf.setSize(200, 150);
        //设置窗体关闭方式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

   
 } 

   
  public static void main(String[] args) {//在主方法中调用CreateJFrame()方法 

       
  /*
         * JFrame类常用构造方法
         * public JFrame()
         * 该构造方法可以创建一个初始不可见,没有标题的新窗体
         * public JFrame(String title)
         * 该构造方法在实例化该JFrame对象时可以创建一个不可见但具有标题的窗体。可以使用JFrame对象
         * 调用show()方法使窗体可见,但是该方法被新版本JDK所抛弃,通常使用setVisible(true)方法使窗体可见
         * 同时使用SetSize(int x,int y)设置窗体大小
         * 调用setDefaultCloseOperation()关闭窗体,
         * 关闭方式:
         * DO_NOTHING_ON_CLOSE:什么都不做就将窗体关闭
         * DISPOST_ON_CLOSE:任何注册监听程序对象会自动隐藏并释放窗体
         * HIDE_ON_CLOSE:隐藏窗口的默认窗口关闭
         * EXIT_ON_CLOSE:退出引用程序,默认窗口关闭
         */
        new JFrameExample1().CreateJFrame("创建一个JFrame窗体"); 

    } 

     

}