GUI(图形用户界面)
Swing
- Swing是AWT组件的增强组件
- 它是轻量型组件
- 不依赖操作系统的语言,可以在任何平台运行
- 可插入外观组件
AWT(抽象窗口工具类)
- 依赖本地平台的组件叫做重量级组件
窗体组件类结构
JFrame窗体
- JFrame窗体是一个容器,它是Swing程序中各个组件的载体
- JFrame相当于承载Swing组件的容器
JFrame构造方法
- JFrame():构造一个初始不可见的新窗体——掌握
- JFrame(GraphicsConfiguration gc):以指定的屏幕设备和空白标题创建一个Frame——了解
- JFrame(String title):创建一个新的,初始不可见的具有指定标题的Frame——掌握
- Frame(GraphicsConfiguration gc,String title):创建一个具有指定标题和指定屏幕设备的 GraphicsConfiguration 的 JFrame——了解
JFrame方法
- void setVisible(boolean b):b为ture时,窗体可见,false不可见
- void setSize(int width,int height):调整JFrame的窗体宽度为width,高度为height
- void setDefaultCloseOperation(int operation) 设置用户在此窗体上发起 “close” 时默认执行的操作。
- Container getContentPane() 返回此窗体的 contentPane 对象,是一个容器类对象
注意
- 创建JFrame窗体后,需要通过调用setDefaultCloseOperation(int operation)设置窗体的关闭方式
- operation有四个选项,如下
- DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作
- HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体
- DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体
- EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用
- 默认情况下,该值被设置为HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 “defaultCloseOperation”
import javax.swing.*;
import java.awt.*;
public class Demo01 {
public static void createJFrame(){
//实例化一个JFrame对象,自带标题
JFrame jf = new JFrame("窗体");
//设置JFrame窗体可见
jf.setVisible(true);
//设置JFrame窗体宽度和高度
jf.setSize(400,400);
//获取一个容器
Container container = jf.getContentPane();
//创建一个JLabel标签
JLabel jLabel = new JLabel("这是一个JFrame窗体");
//把JLabel标签添加进容器中
container.add(jLabel);
//使标签的文字居中
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//设置窗体关闭方式
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
createJFrame();
}
}
运行程序实例如下
个人理解
- 窗体是容器的载体
- 容器是组建的载体
- 窗体、容器、组件是一层层嵌套的
Container容器
- 容器是用来包含和显示组件的
JLable标签
- 代表Swing中的标签组件
JButton按钮
- 代表Swing按钮,按钮可以带一些图片或文字
JCheckBox复选框
- 代表Swing中的复选框组件
JComBox下拉列表框
- 代表下拉列表框,可以在下拉显示区域显示多个选项
JDialog对话框
- 代表Swing版本的对话框
JRadioButton单选按钮
- 代表Swing的单选按钮
JList一系列条目的组件
- 代表能够在用户界面显示一系列条目的组件
JTextField文本框
- 代表文本框
JPasswordField密码框
- 代表密码框
JTextArea文本区域
- 代表Swing中的文本区域
JOptionPane对话框
- 代表Swing中一些对话框