立即注册
查看: 756|回复: 0

[JAVA资料] Java从最基础入门到精通:第13章-Swing用户界面设计

已绑定手机
发表于 2022-1-1 16:30:00 | 显示全部楼层 |阅读模式 来自 广东省深圳市
AWT 存在缺少剪贴板、打印支持等缺陷,甚至没有弹出式菜单和滚动窗口等,因此 Swing的产生也就成为必然。Swing 是纯 Java 实现的轻量级(light-weight)组件,它不依赖系统的支持。本章主要讨论 Swing 组件基本的使用方法和使用 Swing 组件创建用户界面的初步方法。

13.1 Swing 基础
Swing 元素比 AWT 元素具有更好的屏幕显示性能。Swing 用 100%纯 Java 实现,所以 Swing具有 Java 的跨平台性。Swing 不是真正使用原生平台提供设备,而是仅仅在模仿,因此可以在任何平台上使用 Swing 图形用户界面组件。Swing 绝大部分组件都是轻量级组件,它不像重量级组件那样必须在它们自己本地窗口中绘制,而是在它们所在的重量级窗口中绘制。
注意:AWT 组件具有平台相关性,它是系统对等类的实现;而 Swing 组件在不同平台具有一致性的表现,另外还可以提供本地系统不支持的一些特征,因此 Swing 比 AWT 的组件实用性更强。Swing 采用了 MVC(Model-View-Controller,即模型-视图-控制)设计模式。

13.1.1 Swing 的类层次结构
在 javax.swing 包中,有两种类型的组件:顶层容器(Jframe、Japplet、JDialog 和 JWindow)和轻量级组件。Swing 轻量级组件都是由 AWT 的 Container 类直接或间接派生而来。
java.awt.Component
+-java.awt.Container
+-java.awt.Window
+-java.awt.Frame-javax.swing.JFrame
+-javax.Dialog-javax.swing.JDialog
+-javax.swing.JWindow
+-java.awt.Applet-javax.swing.JApplet
+-javax.swing.Box
+-javax.swing.Jcomponet
Swing 包是 JFC(Java Foundation Classes)的一部分,它由许多包组成,如下所示:
Com.sum.swing.plaf.motif:实现 Motif 界面样式代表类
Com.sum.java.swing.plaf.windows:实现 Windows 界面样式的代表类
javax.swing:Swing组件和使用工具
javax.swing.border:Swing 轻量组件的边框
javax.swing.colorchooser:JcolorChooser 的支持类/接口
javax.swing.event:事件和侦听器类
javax.swing.filechooser:JFileChooser 的支持类/接口
javax.swing.pending:未完全实现的 Swing 组件
javax.swing.plaf:抽象类,定义 UI 代表的行为
javax.swing.plaf.basic:实现所有标准界面样式公共基类
javax.swing.plaf.metal:实现 Metal 界面样式代表类
javax.swing.table:Jtable 组件
javax.swing.text:支持文档的显示和编辑
javax.swing.text.html:支持显示和编辑 HTML 文档
javax.swing.text.html.parser:Html 文档的分析器
javax.swing.text.rtf:支持显示和编辑 RTF 文件
javax.swing.tree:Jtree 组件的支持类
javax.swing.undo:支持取消操作

javax.swing 包是 Swing 提供的最大包,它大约包含 100 个类和 25 个接口,并且绝大部分 Swing 组件都包含在 swing 包中(JtableHeader、JtextComponent 除外,分别在 swing.table和 swing.text 包中)。javax.swing.event 包中定义了事件和事件处理类,这与 java.awt.event包类似,主要包括事件类和监听器接口、事件适配器。
●javax.swing.pending 包主要是一些没有完全实现的组件。
●javax.swing.table 包主要是 Jtable 类的支持类。
●javax.swing.tree 包同样也是 Jtree 类的支持类。
●javax.swing.text、swing.text.html、swing.text.html.parser 和 swing.text.rtf 包都是与文档显示和编辑相关的包。

13.1.2 Swing 的特点
在正式学习 Swing 之前,先来看一下 Swing 的特点,这也是和 AWT 的不同之处。Swing的特点包括以下几点。
(1)组件的多样化。Swing 的基础是 AWT,它提供了比 AWT 更多的图形界面组件。Swing 组件的类名都是以字母“J”开头,除 AWT 具有的基本组件外(按钮 JButton、标签 JLabel、复选框 JCheckBox、菜单 JMenu),还增加了许多比较复杂的高级组件,例如表格(JTable)、树(JTree)。
(2)MVC 模式。Swing 比较突出的特点在于 MVC 模型的普遍实用性。MVC 模型主要包括 3 部分结构:模型、视图和控制器。模型(Model)用于保存所用到的数据;视图(View)用于显示数据内容;控制器(Controller)用于处理用户和模块交互事件。当模型的数据改变,会通知与之相关的视图,视图通过控制器指定相应机制。为了简化工作,Swing 组件将视图和控制器合二为一。MVC 设计思想是图形用户界面设计比较通用,这样可以使内容本身和显示方式分类,使数据显示更加灵活多变。
(3)可存取性支持。为了实现可存取性的支持,所有 Swing 组件实现了 Accessible 接口,这样一些辅助功能(屏幕阅读器)也可以得到实现。
(4)支持键盘操作。JComponent 类的 registerKeyboardAction()方法可以实现用键盘操作代替用户鼠标操作,相当于传统意义的热键操作。
(5)设置边框。Swing 组件可以设置一个或者多个边框,并且提供多种类型的边框供用户选择,甚至用户可以建立组合边框或自己设计边框。另外空白边框可以使组件变大,协助布局管理器布局。
(6)使用图标(Icon)。Swing 组件另外一个更加丰富的功能就是许多组件可以通过图标修饰自己。

13.1.3 Swing 程序结构简介
Swing 的程序设计一般可按照以下流程进行。
(1)通过 import 引入 swing 包。
(2)设置 GUI 的“外观界面风格”。
(3)创建顶层容器。
(4)创建按钮和标签等组件。
(5)将组件添加到顶层容器。
(6)在组件周围添加边界。
(7)进行事件处理。
下面是第一个 Swing 程序。
// 文件:程序 13.1 SwingApplication.java 描述:SwingApplication 演示
//导入需要使用的包和类
import javax.swing.*; //引入 Swing 包名
import java.awt.*;
import java.awt.event.*;
public class SwingApplication {
public static void main(String[ ] args) {
try { //try 语句块,监视该段程序
//设置窗口风格

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) { //捕获异常
e.printStackTrace(); //异常信息输出
}
JFrame frame = new JFrame("Swing 应用程序"); //创建,并初始化顶层容器并
Container c = frame.getContentPane(); //获取面板容器
JPanel pane = new JPanel(); //创建,并初始化面板 panel
c.add(pane); //将面板添加到窗口
pane.setlayout(new FlowLayout()); //设置布局管理器 FlowLayout
final JLabel label = new JLabel(); //创建,并初始化标签 label
......

更多详细内容请下载附件查看
2021-12-31 14:20 上传
文件大小:
738.94 KB
下载次数:
4
本地下载

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表