前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java swing图形化界面_javagui界面设计

java swing图形化界面_javagui界面设计

作者头像
全栈程序员站长
发布2022-09-28 11:58:46
1.6K0
发布2022-09-28 11:58:46
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

本文链接: http://blog.csdn.net/xietansheng/article/details/72814531

Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地详细介绍 Java Swing 开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。

教程总目录: Java Swing 图形界面开发(目录)

1. Swing简介

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

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

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

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

2. Swing组件

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

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

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

组件类型的继承关系:

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

2.1 顶层容器

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

#

组件

描述

1

JFrame

一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)

2

JDialog

对话框

2.2 中间容器

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

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

#

组件

描述

1

JPanel

一般轻量级面板容器组件

2

JScrollPane

带滚动条的,可以水平和垂直滚动的面板组件

3

JSplitPane

分隔面板

4

JTabbedPane

选项卡面板

5

JLayeredPane

层级面板

特殊的中间容器:

#

组件

描述

1

JMenuBar

菜单栏

2

JToolBar

工具栏

3

JPopupMenu

弹出菜单

4

JInternalFrame

内部窗口

2.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. 代码实例: 一个简单的窗口程序

代码语言:javascript
复制
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);
}
}

结果展示:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172244.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年8月23日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Swing简介
  • 2. Swing组件
    • 2.1 顶层容器
      • 2.2 中间容器
        • 2.3 基本组件
        • 3. 布局管理器
        • 4. 代码实例: 一个简单的窗口程序
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档