JFrame类是用来创建窗体的
注意:窗体是会为你提供一个最小化和可关闭化按钮
创建的窗体是一个可以任意拖动大小的窗体,你可以选中窗体的任意一个边框进行拖拽,他就会改变现有的大小,但是如果你想拥有一个固定大小的窗体那么你就需要给自己的窗体增加限制条件;可以调用窗体的setResizable方法对窗体的操作进行限制;
若要创建一个需要在多个地方使用的窗体,可将此窗体封装为JFrame的一个子类,即创建一个类继承JFrame类。
关于setContentPane()和getContentPane()的应用
我们可以在 JFrame 对象中添加 AWT 或者 Swing 组件。但是,虽然它有 add 方法,却不能直接用于添加组件,否则会抛出异常——不信就试试。造成这个现象的原因只有一个解释:JFrame 不是一个容器,它只是一个框架。那么,应该怎么添加组件呢?
JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content Pane 中。JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用于获取和设置其 Content Pane 的。
对JFrame添加组件有两种方式:
1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:
frame.getContentPane().add(childComponent)
2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:
Jpanel contentPane=newJpanel();
//把其它组件添加到Jpanel中;
frame.setContentPane(contentPane);
//把contentPane对象设置成为frame的内容面板
JFrame方法的代码举例
import javax.swing.*;
import java.awt.*;
public class JFrameDemo {
public static void main(String[] args) {
// 给窗体提供一个名称
JFrame frame=new JFrame("窗体标题");
//设置是否展示窗体
frame.setVisible(true);
/*
*窗体关闭规则
* EXIT_ON_CLOSE:设置关闭窗体停止程序
* DO_NOTHING_ON_CLOSE:没有任何操作
* HIDE_ON_CLOSE:关闭窗体但是不停止程序
* DISPOSE_ON_CLOSE:释放窗体资源
* */
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体的大小 单位是像素
frame.setSize(300,200);
// 设置窗体的坐标
frame.setLocation(200,200);
// 设置窗体坐标和大小
frame.setBounds(200,200,300,200);
// 获取窗体容器
Container container = frame.getContentPane();
// 设置窗体背景颜色
container.setBackground(Color.white);
// 创建标签
JLabel label = new JLabel("这是一个窗体");
// 将窗体添加到容器中
container.add(label);
// 将窗体从容器中删除
/*container.remove(label);*/
// 验证容器中的组件
container.validate();
// 让窗体重新的载入这个容器(与上一步具有相同的效果)
/*frame.setContentPane(container);*/
}
}