第三章Swing组件基础

第三章Swing组件基础

        Java Swing组件是用于构建图形用户界面(GUI)的工具包,包括按钮、标签、树、表格以及框架等,每个组件又会拥有不同的形态来满足不同用户的需要。Java Swing组件就是构成图形化界面的最基本元素。

3.1 Swing组件类的层次

        Swing的层次图如下所示:

表 10

        从上面的简略结构示意图中可以知道,Swing组件可以分为两种类型,一种是JComponent类,另外一种是Window类。其中Window组件类主要包括一些可以独立显示的组件,而JComponent组件类主要包括了一些不能独立显示的组件。什么是可以独立显示的组件呢?可以独立显示的组件就是当运行一个程序时,这个组件无须托付在其他组件上就可以显示,即它可以直接显示出来,例如JFrame类,他可以独立显示出来,无须其他的依靠组件。而不可独立显示的组件则必须依靠可独立显示的组件来显示,利润文本框组件、按钮组件必须要依托在JFrame框架组件上才能显示出来。

3.2 Swing常用的组件类型

        从功能上划分,在Javax.swing包中Swing组件共有三种类型:顶层组件、中间组件、基本组件。顶层组件又被称作顶层容器,而中间组件又分为中间容器和特殊中间组件,如下图所示:

表 11

下面将详细介绍上图中组件类型的含义。

  1. 顶层容器:JFrame、JApplet、JDialog、JWindow。所谓的顶层容器也就是前面说的Window组件,它是可以独立显示的组件。
  2. 中间容器:所谓的中间容器也就是指哪些可以充当体,但也是不可独立显示的组件。如:JPanel、JScrollPane通俗地说,就是一些基本空间可以放在其中,但是它不能独立显示,必须要依托在顶层容器内才可以。
  3. 特殊中间容器:在GUI上起特殊作用的中间层,如JInternalFrame、JLateredPane、JRootPane。这里的特殊容器类其实也就是中间容器类中的一种,只不过它在图形上更加能够起到美化和专业化的作用。
  4. 基本组件:实现人机交互的组件,如JButton、JComboBox、JList、JMenu、JSlider、JTextField。

        组件的层次结构是通过包含关系建立起来的。顶层容器包含中间容器和基本组件,中间容器又可以包含其他中间容器和基本组件。这种层次结构使得可以方便地组织和管理界面上的各种元素,实现复杂的用户界面。例如,可以在JFrame中添加一个JPanel,然后在JPanel中添加多个按钮和标签。这样,JFrame作为顶层容器,提供了整个窗口的框架,JPanel作为中间容器,负责组织和布局按钮和标签等基本组件。通过合理地利用 Java 的组件层次结构,可以创建出功能丰富、用户友好的图形用户界面应用程序。

3.2.1 Window类组件

        当开发人员使用Java进行图形编程的时候,其组件将被绘制在哪里呢?此时,需要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,也可以把它想象成一个窗口。顶层容器是进行图形编程的基础,一切图形化的东西都必然包括在顶层容器中,在Swing中主要有三种可以使用的顶层容器。

  1. JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。
  2. JDialog:用来设计对话框。
  3. JApplet:用来设计可以嵌入在网页中的Java小程序。

        基于Swing的图形界面至少要有一个顶层容器。容器与其所包含的组件形成了树状包含层次结构,顶层容器就是作为这个包含层次结构的跟。每个顶层容器都有一个内容面板,这个内容面板也就是前面提到的中间容器类组件,该内容面板中可以包含很多界面中所需要的组件。另外,在顶层容器中,也可以添加菜单组件,而菜单组件一般是放在顶层容器中,和内容面板是并行的。下图是关于JFrame作为顶层窗口的示意图。

表 12

        通过示意图可以得知,在实际开发中涉及一个图形界面的方法,其方法就是首先创建一个顶层容器JFrame,接下来创建一个内容面板或者中间容器,也可以创建一个菜单组件,最后将所需要的基本组件按照一定的布局方式添加到内容面板中,这样就形成的一个图形界面。

3.2.2 JComponer类组件

        JComponent类是所有轻量级的组件的父类,下面已表格的方式列出其子类以及用户,如表所示:

子类名称

说明

JButton

创建按钮对,可以创建太图标的按钮

JTree

创建树对象

JComboBox

创建组合框对象,和Choice相似

JCheckBox

创建复选框对象

JFileChooser

创建文件选择器

JInternalFrame

创建内部窗体

JLabel

创建标签

JMenu

创建菜单对象

JMenuBar

创建菜单条对象

JPanel

创建面板对象

JPasswordField

创建口令文本对象

JPopupMenu

创建弹出式菜单

JProgressBar

创建进度条

JScrollBar

创建滚动条

JTextArea

创建文本区

JTable

创建表格

JSplitPane

创建拆分窗格

JToolTip

创建工具提示对象

JToolBar

创建工具条

JRadioButton

创建单选按钮

JScrollPane

创建滚动窗格

JSlider

创建滚动条

        以上就是JComponent类的子类,当然远远不止这些,所有继承JComponent类的组件都属于基本组件类,它们只能依赖于中间容器而存在。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值