关于Swing

1. Swing简介

Swing是一个为JAVA设计的GUI工具包。

Swing是JAVA基础类的一部分。

Swing包括了图形用户界面(GUI)器件,如:文本框,按钮,分隔窗口和表。

Swing提供了比AWT更好的屏幕显示元素。它们用纯JAVA写成,和JAVA本身一样可以跨平台运行。

为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。

2. Swing组件

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

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

  • 顶层容器
    • 菜单栏
    • 中间容器
      • 基本组件
      • 基本组件

组件类型的继承关系:

  • 顶层容器 属于窗口类组件,继承自 java.awt.Window
  • 中间容器 和 基本组件 继承自 javax.swing.JComponent

(1)顶层容器

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

#组件描述
1JFrame一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)
2JDialog对话框


(2)中间容器

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

常用的中间容器(面板):

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


特殊的中间容器:

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


(3)基本组件

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

常用的简单的基本组件:

#组件描述
1JLabel标签
2JButton按钮
3JRadioButton单选按钮
4JCheckBox复选框
5JToggleButton开关按钮
6JTextField文本框
7JPasswordField密码框
8JTextArea文本区域
9JComboBox下拉列表框
10JList列表
11JProgressBar进度条
12JSlider滑块


选取器组件:

#组件描述
1JFileChooser文件选取器
2JColorChooser颜色选取器


其他较为复杂的基本组件:

#组件描述
1JTable表格
2JTree

3. 布局管理器

Swing 的各种组件(JComponent)添加到面板容器中(JPanel),需要给面板容器指定布局管理器(LayoutManager),明确容器(Container)内的各个组件之间的排列布局方式。

常用的布局管理器:

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

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值