没有合适的资源?快使用搜索试试~ 我知道了~
java swing 学习多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
资源详情
资源评论
资源推荐
7.1 Swing 简介
7.1.1 简介
第五讲中我们学习了 , 是 的基础。 的产生主要原因就是 不
能满足图形化用户界面发展的需要。
设计的初衷是支持开发小应用程序的简单用户界面。例如 缺少剪贴板、打印支持、
键盘导航等特性,而且原来的 甚至不包括弹出式菜单或滚动窗格等基本元素。
此外 还存在着严重的缺陷,人们使 适应基于继承的、具有很大伸缩性的事件模
型,基于同位体的体系结构也成为其致命的弱点。
随着发展的需要, 出现了, 组件几乎都是轻量组件,与重量组件相比,没有
本地的对等组件,不像重量组件要在它们自己的本地不透明窗体中绘制,轻量组件在它们的重
量组件的窗口中绘制。
这一讲我们讲一下基本的 组件使用方法和使用 组件创建用户界面的初步方
法。
是由 纯 实现的, 组件是用 实现的轻量级(
)组件,没有本地代码,不依赖操作系统的支持,这是它与 组件的最大区别。由
于 组件通过与具体平台相关的对等类()实现,因此 比 组件具有更强
的实用性。 在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。
采用了一种 的设计范式,即模型视图控制(
),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。
外观感觉采用可插入的外观感觉( !,"!)
在 组件中,由于控制组件外观的对等类与具体平台相关,使得 组件总是只有与
本机相关的外观。 使得程序在一个平台上运行时能够有不同的外观。用户可以选择自己
习惯的外观。以下三幅图是在同一个操作系统下得到不同的外观。
风格
#
风格
$
%
风格
7.1.2 Swing 的类层次结构
在 &'(% 包中,定义了两种类型的组件:顶层容器(!),**,+
和 )和轻量级组件。 组件都是 的 类的直接子类和间接子类。
&(()*
&((
&((
&((!)&'(%(!)
&'(+&'(%(+
&'(%(
&((**&'(%(**
&'(%(,'
&'(%(-)*
包是 !(!%%%)的一部分,由许多包组成,如下表:
包 描述
)(%)(%(*#()#
用户界面代表类,它们实现 # 界面样式
)(%)(&(%(*#(
%
用户界面代表类,它们实现 % 界面样
式
'(%
组件和使用工具
'(%(
轻量组件的边框
'(%(--% -% 的支持类.接口
'(%(
事件和侦听器类
'(%(/-%
!% 的支持类.接口
'(%(*
未完全实现的 组件
'(%(*#
抽象类,定义 01 代表的行为
'(%(*#(%-
实现所有标准界面样式公共功能的基类
'(%(*#()
用户界面代表类,它们实现 界面样式
'(%(
组件
'(%('
支持文档的显示和编辑
'(%('()
支持显示和编辑 2 文档
'(%('()(*%
2) 文档的分析器
'(%('(#
支持显示和编辑 3! 文件
'(%(
组件的支持类
'(%( 支持取消操作
4在 & (5 中,第一、第二和 * 包没有了,增加了 *#() 包,主要功能:给缺
省的 "! 加上附加的 "!,例如一个 ,01 实例可以同时处理 #,01 和
,01(6
% 包是 提供的最大包,它包含将近 个类和 78 个接口,几乎所有的
组件都在 % 包中,只有 2 和 ')* 是例外,它们
分别在 %( 和 %(' 中。
%( 包中定义了事件和事件监听器类,与 的 包类似。它们都包括
事件类和监听器接口。
%(* 包包含了没有完全实现的 组件。
%( 包中主要包括了表格组建()的支持类。
%( 同样是 的支持类。
%('、%('()、%('()(*% 和 %('(# 都是用于
显示和编辑文档的包。
7.1.3 Swing 组件的多样化
是 的扩展,它提供了许多新的图形界面组件。 组件以开头,除了有
与 类似的按钮(,6、标签(6、复选框(- ,'6、菜单()等
基本组件外,还增加了一个丰富的高层组件集合,如表格()、树()。
$
7.1.4 MVC(Model-View-Control)体系结构
胜过 的主要优势在于 体系结构的普遍使用。在一个 用户界面中,
存三个通讯对象:模型、视图和控件。模型是指定的逻辑表示法,视图是模型的可视化表示法,
而控件则指定了如何处理用户输入。当模型发生改变时,它会通知所有依赖它的视图,视图使
用控件指定其相应机制。
为了简化组件的设计工作,在 组件中视图和控件两部分合为一体。每个组件有一个
相关的分离模型和它使用的界面(包括视图和控件)。比如,按钮 , 有一个存储其状态
的分离模型 , 对象。组件的模型是自动设置的,例如一般都使用 ,而不是
使用 ,对象。另外,通过 类的子类或通过实现适当的接口,可以为组件建
立自己的模型。把数据模型与组件联系起来用 %46方法。
是现有的编程语言中制作图形用户界面的一种通用的思想,其思路是把数据的内容本
身和显示方式分离开,这样就使得数据的显示更加灵活多样。比如,某年级各个班级的学生人
数是数据,则显示方式是多种多样的,可以采用柱状图显示,也可以采用饼图显示,也可以采
用直接的数据输出。因此在设计的时候,就考虑把数据和显示方式分开,对于实现多种多样的
显示是非常有帮助的。
7.1.5 可存取性支持
所有 组件都实现了 --%% 接口,提供对可存取性的支持,使得辅助功能如屏
幕阅读器能够十分方便的从 组件中得到信息。
7.1.6 支持键盘操作
在 组件中,使用 )* 类的 %9:-()方法,能使用
户通过键盘操作来替代鼠标驱动 ;01 上 组件的相应动作。有些类还为键盘操作提供了
更便利的方法。
其实这就相当于热键,使得用户可以只用键盘进行操作。
7.1.7 设置边框
对 组件可以设置一个和多个边框。 中提供了各式各样的边框供用户选用,
也能建立组合边框或自己设计边框。一种空白边框可以增大组件,协助布局管理器对容器中的
组件进行合理的布局。
7.1.8 使用图标(Icon)
与 的部件不同,许多 组件如按钮、标签,除了使用文字外,还可以使用图标
修饰自己。
例 <.:
)*&'(%(=>..引入 包名
..)*-)(%(&(%(=>
..使用 +9(7,? 版和所有 (,5
..之前的版本@引入 包名用此方法。
)*&((=>
)*&(((=>
*--%%**-A
*%-/'BC)#-- %D>
*)- %B>..计数器,计算点击次数
*-)*-)*%46A
/B4/'E6>
,B,41F)G6>
(%)-49:H(9I16>..设置按钮的热键为F1F
(-%4-%46A
*--#)4-H6A
)- %EE>
(%'4/'E)- %6>
..显示按钮被点击的次数
J
J6>
(%!46>
.=在顶层容器及其内容之间放置空间的常用办法是把内容添加到 * 上,而
* 本身没有边框的。=.
*B46>
*(%,4,!-:(-H)*:,4
5@..*
剩余25页未读,继续阅读
Mickeyone
- 粉丝: 1
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
- 基于EM-GMM模型的目标跟踪和异常行为检测matlab仿真【包括程序,注释,参考文献,操作步骤,说明文档】
- 2109010044_胡晨燕_选课管理数据库设计与实现.prj
- 帕鲁介绍的PPT备份没什么好下的
- demo1-202405
- 两种方式修改Intel网卡MAC地址
- 服务器搭建所需资源:static文件夹
- Vue02的源码学习资料
- Python 程序语言设计模式思路-行为型模式:访问者模式:在不改变被访问对象结构的情况下,定义对其元素的新操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0