温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

swing组件是什么

发布时间:2020-10-30 17:03:55 来源:亿速云 阅读:187 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关swing组件是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。

Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。

Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。

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

推荐课程:Java教程。

Swing组件

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

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

顶层容器

菜单栏

中间容器

基本组件

基本组件

组件类型的继承关系:

顶层容器 属于窗口类组件,继承自java.awt.Window;

中间容器 和 基本组件 继承自javax.swing.JComponent。

(1)顶层容器

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

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

(2)中间容器

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

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

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

特殊的中间容器:

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

(3)基本组件

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

常用的简单的基本组件:

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

选取器组件:

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

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

#
组件
描述
1
JTable
表格  
2
JTree

3. 布局管理器

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

常用的布局管理器:

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

4. 代码实例: 一个简单的窗口程序          

package com.xiets.swing;import javax.swing.*;public class Main {

    public static void main(String[] args) {        // 1. 创建一个顶层容器(窗口)
        JFrame jf = new JFrame("测试窗口");          // 创建窗口
        jf.setSize(250, 250);                       // 设置窗口大小
        jf.setLocationRelativeTo(null);             // 把窗口位置设置到屏幕中心
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的关闭按钮时退出程序(没有这一句,程序不会退出)

        // 2. 创建中间容器(面板容器)
        JPanel panel = new JPanel();                // 创建面板容器,使用默认的布局管理器

        // 3. 创建一个基本组件(按钮),并添加到 面板容器 中
        JButton btn = new JButton("测试按钮");
        panel.add(btn);        // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口
        jf.setContentPane(panel);        // 5. 显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。
        jf.setVisible(true);
    }

}

结果展示:

swing组件是什么

关于swing组件是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI