• P01 Swing综述


    系统:Win10
    Java:1.8.0_333
    IDEA:2020.3.4
    Gitee:https://gitee.com/lijinjiang01/JavaSwing

    1.Swing 简介

    Swing 是一个用于 Java GUI 编程(图形界面设计)的工具包(类库);换句话说,Java 可以用来开发带界面的 PC 软件,使用到的工具就是 Swing
    Swing 使用纯粹的 Java 代码来模拟各种控件(使用 Java 自带的作图函数绘制出各种控件),没有使用本地操作系统的内在方法,所以 Swing 是跨平台的。也正是因为 Swing 的这种特性,人们通常把 Swing 控件称为轻量级控件

    2.Swing 和 AWT

    AWT(Abstract Window Toolkit,抽象窗口工具)是一套早期的 Java GUI 开发工具,Swing 也是在 AWT 的基础上发展起来的
    在这里插入图片描述

    AWT 的初衷是用来开发小型的图形界面程序,提供的功能较少,诸如剪切板、打印支持、键盘导航、弹出式菜单、滚动窗格等很多重要的功能在 AWT 中都不具备;此外,AWT 发生错误的几率也很高
    Java 官方看到了 AWT 的不足,就开始着手开发新的 GUI 类库,以继续占领 Java GUI 开发的市场,这就是后来的 Swing
    首先 Swing 弥补了 AWT 的不足,并对 AWT 进行了扩充,几乎支持了所有的常用控件和功能;其次 Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等,而且 Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行
    为了和 AWT 组件区分,Swing 组件在 javax.swing.* 包下,类名均以 J 开头,例如: JFrame、JLabel、JButton 等

    3.布局管理器

    为了使生成的图形用户界面具有良好的平台无关性,Java 语言提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式
    常用的布局管理器:

    #布局管理器描述
    1FlowLayout流式布局,按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。
    2BorderLayout边界布局,把Container按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
    3GridLayout网格布局,把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。
    4GridBagLayout网格袋布局,按网格划分Container,每个组件可占用一个或多个网格,可将组件垂直、水平或沿它们的基线对齐。
    5CardLayout卡片布局,将Container中的每个组件看作一张卡片,一次只能显示一张卡片,默认显示第一张卡片。
    6BoxLayout箱式布局,将Container中的多个组件按 水平 或 垂直 的方式排列。
    7null绝对定位,通过设置组件在Container中的坐标位置来放置组件。

    4.Swing 组件

    一个 Java 的图形界面,由各种不同类型的“元素”组成,例如: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”统一被称为 组件(Component)

    组件按照不同的功能,可分为 顶层容器、中间容器、基本组件。一个简单窗口的组成,如下层级结构所示:

    • 顶层容器
      • 菜单栏
      • 中间容器
        • 基本组件
        • 基本组件
          在这里插入图片描述

    组件类型的继承关系:
    顶层容器 属于窗口类组件,直接继承了AWT 组件,而不是从 JComponent 派生的
    中间容器 和 基本组件 继承自 javax.swing.JComponent
    在这里插入图片描述

    4.1 顶层容器

    顶层容器属于窗口类组件,可以独立显示,一个图形界面至少需要一个窗口,它们分别如下:

    #组件描述
    1JFrame一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)
    2JDialog对话框
    3JWindow一个可以显示但没有标题栏或窗口管理按钮的容器
    4JAppletjava.applet.Applet 的扩展版,是一种不能单独运行但可嵌入在其他应用程序中的小程序,已过时

    4.2 中间容器

    中间容器充当基本组件的载体,不可独立显示。中间容器可以添加若干基本组件(也可以嵌套添加中间容器),对容器内的组件进行管理,类似于给各种复杂的组件进行分组管理。最顶层的一个中间容器必须依托在顶层容器(窗口)内
    常用的中间容器(面板):

    #组件描述
    1JPanel一般轻量级面板容器组件
    2JScrollPane带滚动条的,可以水平和垂直滚动的面板组件
    3JSplitPane分隔面板
    4JTabbedPane选项卡面板
    5JLayeredPane层级面板

    特殊的中间容器:

    #组件描述
    1JMenuBar菜单栏
    2JToolBar工具栏
    3JPopupMenu弹出菜单
    4JInternalFrame内部窗口

    4.3 基本组件

    基本组件是直接实现人机交互的组件。
    常用的基本组件:

    #组件描述
    1JLabel标签
    2JButton按钮
    3JRadioButton单选按钮
    4JCheckBox复选框
    5JToggleButton开关按钮
    6JTextField文本框
    7JPasswordField密码框
    8JTextArea文本区域

    较为复杂的基本组件:

    #组件描述
    1JComboBox下拉列表框
    2JList列表
    3JProgressBar进度条
    4JSlider滑块
    5JTable表格
    6JTree

    选取器组件:

    #组件描述
    1JFileChooser文件选取器
    2JColorChooser颜色选取器
  • 相关阅读:
    【Html】交通灯问题
    Jenkins+SonarQube代码审查
    高新技术企业认定八大条件、八大领域、四项指标
    计算机网络--网络层
    SpringBoot Filter过滤器的使用篇
    Python 列表推导式:简洁、高效的数据操作艺术
    docker内存清理
    卷积神经网络CNN里经典网络模型之 AlexNet全网最详解(理论篇)
    redis desktop manager 0.9.3 免费版
    【Java设计模式 思想原则重构】设计思想、设计原则、重构总结
  • 原文地址:https://blog.csdn.net/qq_35132089/article/details/126897427