JFrame
在javax.swing包中有一个JFrame类
- JFrame继承了Frame
- 在JFrame中对Frame窗口的功能进行了升级
我们在创建JFrame对象的时候不仅创建了一个窗口,并且还会创建一个面板container
- 也就是我们一旦创建了一个JFrame对象之后就会产生一个JFrame对象,并且默认在JFrame窗口上就有一个Container对象(这个可以看成一个面板也可以看成是一个窗口)
- Window和Panel都继承了Container
- 这个Container其实就是一个比较顶级的面板或者说比较顶级的接口
- Window和Panel都继承了Container
- 我们一经创建JFrame对象之后我们就会自动残生一个Container对象,这个Container对象自动添加到了JFrame对象上面,这个时候我们添加组价到JFrame上其实是添加到了JFrame上面的Container上了
- 通过JFrame类中的getContentPane()方法可以得到这个Container对象
- 我们要注意如果创建了一个JFrame对象之后,这个时候我们修改背景颜色就要修改这个Container对象的背景颜色,如果我们只是修改了JFrame对象的颜色,这个时候是没有用的,因为在我们的JFrame对象上还有一个Container对象
- 所以我们要修改Container对象的颜色
在JFrame类中我们将窗口的关闭事假封装成为了一个方法
-
setDefaultCloseOperation();
我们调用这个方法并且在这个方法中传入参数:
- 如果传入的参数是: WindowConstants.EXIT_ON_CLOSE ---- > 表示关闭窗口就正常退出程序
- 如果传入的参数是: WindowCOnstants.HIDE_ON_CLOSE ---- > 表示隐藏这个窗口
-
在Frame类中关闭窗口事件我们要通过窗口监听来完成
JFrame测试:
package com.ffyc.javaoop.图形界面练习;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo1 extends JFrame{
public void Init(){
this.setBounds(100,100,400,400);
this.setVisible(true);
/*
设置窗口关闭事件,这个时候我们一旦关闭窗口,这个程序也会退出运行
*/
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JLabel jLabel = new JLabel("欢迎来到飞飞java");
this.add(jLabel);
//设置标签居中
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
Container container = this.getContentPane();
container.setBackground(Color.yellow);
}
}
class JFrameDemotest{
public static void main(String[] args) {
new JFrameDemo1().Init();
}
}