java的swing图形_Java Swing 图形界面开发简介

1.Swing简介

Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

2.Swing组件

一个 Java 的图形界面,由各种不同类型的“元素”组成,这些“元素”被称为 组件(Component)。

Swing gui包含了两种元素:组件和容器。它们的区别主要是在概念上的。因为每个容器也都是组件。组件是单独的控制元素,例如按键或者文本编辑框。组件要放到容器中才能显示出来,由于容器也是组件,因此容器也可放到别的容器中。故组件和容器构成了包含层级关系。

容器是一种可以包含组件的特殊组件。Swing中有两大类容器。一类是重量级容器,或者称为顶层容器(top-level container),它们不是继承于JComponent。它们包括JFrame,JApplet,JWindow,JDialog。它们的最大特点是不能被别的容器包含,只能作为界面程序的最顶层容器来包含其它组件。第二类容器是轻量级容器,或者称为中间容器,它们继承于JComponent,包括JPanel,JScrollPane等。中间容器用来将若干个相关联的组件放在一起。由于中间容器继承于JComponent,因此它们本身也是组件,它们可以(也必须)包含在其它的容器中。

如:顶层容器JFrame可独立存在,可被移动,也可被最大化和最小化,有标题栏、边框,可添加菜单栏。中间层容器JPanel不能独立存在,必须包含在另一个容器中。

顶层容器

菜单栏

中间容器

基本组件

基本组件

如图:

3f51b7e4db95

image.png

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

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

Java Swing 组件键继承关系如图:

3f51b7e4db95

image.png

2.1 顶层容器

顶层容器属于窗口类组件,可以独立县十四,一个图形界面至少需要一个窗口。顶层容器如下:

组件

描述

1

JFrame

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

2

JDialog

对话框

2.2中间容器

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

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

组件

描述

1

JPanel

一般轻量级面板容器组件

2

JScrollPane

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

3

JSplitPane

分隔面板

4

JTabbedPane

选项卡面板

5

JLayeredPane

层级面板

特殊组件

描述

6

JMenuBar

菜单栏

7

JToolBar

工具栏

8

JPopupMenu

弹出菜单

9

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

颜色选取器

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中的坐标位置来放置组件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值