当前课程知识点:Java程序设计 >  第七章 图形用户界面 >  7.14-其它Swing特性 >  7.14-其它Swing特性

返回《Java程序设计》慕课在线视频课程列表

7.14-其它Swing特性在线视频

7.14-其它Swing特性

下一节:7.15-第7章小结

返回《Java程序设计》慕课在线视频列表

7.14-其它Swing特性课程教案、知识点、字幕

大家好 欢迎回来继续学习

Java语言程序设计

我们前面学习了Swing的

容器的层次和组件

接下来我们来再学习

一些Swing的其他的特性

那这一节我们要

来了解一下Action对象

还有组件的边框

还有怎么设置这个组件的观感

我相信大家用到很多软件的时候

都会见到有的功能

既在菜单项中体现出来

也出现在工具条上

也就是说工具条上的某个按钮

可能跟某个菜单里面的菜单项

它的功能是一样的

你选菜单项或者

点工具栏上的按钮

都可以达到同样的效果

那么我们写程序的时候

怎么实现这一点呢

我们想象一下那是不是就是得

向菜单项要注册监听器

向这个工具栏上的按钮

也得注册监听器

这些监听器它们

得完成同样的事件响应功能

那么这样一一去注册监听器

是不是就挺麻烦的呢

有没有更好的办法呢

Action对象就是干这个用的

我们可以用Action对象

来封装对不同的组件

比如菜单项和按钮

它们的同样的响应功能

把这样的响应功能封装在里面

还可以封装一些

其他的有关的属性的设置

封装成Action对象以后

我们可以把Action对象添加到

需要这种响应的各个地方

包括菜单项工具条

上面的按钮等等

Action接口是

对ActionListener接口的

一个有用的扩展

我们看这里给出了它的继承关系

它就扩展了ActionListener接口的

在既有菜单又有工具栏的

这样的应用程序中

我们就可以通过Action对象

来封装事件响应代码

和相关的设置

并且将这个Action对象

添加到不同的事件源去

这样不同的事件源

就可以得到同样的响应

我们还可以通过它

对不同组件的显示文字

图标快捷键提示文字

是否可用等等这些属性

进行统一的设置

那么怎么创建Action对象呢

当然我们要创建的肯定

是一个实现了Action接口的

非抽象类的对象

那AbstractAction类

是实现了Action接口的一个抽象类

为什么它是抽象类

因为它就唯独

没有实现ActionPerformed的方法

除了ActionPerformed方法

以外的其他方法

在AbstractAction类中都实现了

而且它还提供了一些

获取和设置Action域属性的方法

那我们要创建Action对象

就首先需要创建一个

继承或者扩展抽象类

AbstractAction类的子类

然后再实例化这个子类

这个时候在子类中

我们要定义ActionPerformed的方法

还可以设置需要的一些属性值

创建了Action对象以后

接下来我们就可以在程序中

使用Action对象了

我们可以通过GUI组件的

在Action方法将Action

对象关联到组件

每个具有ActionListener方法的组件

也都有setAction方法

实际上Action它就是一个事件监听器

那如果说你需要向某个组件上

或者叫某个事件源上

添加多个事件监听器的话

那还是应该使用ActionListener方法

因为一个机外组件

虽然它可以多次调用setAction方法

但是你调用第二次setAction

那么组件和前一个Action对象

之间的关联就会被删除了

也就是说如果你注册

多个Action对象的话

那只有最后一个Action对象

关联上了其他的都被删除了

所以如果需要注册多个监听器

还是只能使用ActionListener

那我们通过setAction方法

把Action对象关联到

某个GUI组件以后会有什么效果呢

效果就是这个组件的属性

会被设置为符合

这个Action对象的属性

也就是在Action对象里面

我们可以统一规定

它所关联的组件的属性

还有这个Action对象

会被注册为这个组件的

一个事件监听器对象

如果我们改变了Action对象

的属性或者方法

那么和它关联的

组件的属性和方法也会自动变更

以符合这个改变了的Action对象

Swing组件的另一个

有用的共同特性就是边框

每一个继承自JComponent的组件

它都可以去设置边框

使用组件的setBorder方法

就可以为组件添加边框

这个时候需要提供

一个Border类的对象作为参数

那么我们可以用BorderFactory类

提供的很多静态方法

来产生常用的Border对象

那么如果这些常用的Border对象

你认为不能够满足

一些程序的特殊要求的话

也可以直接使用

这个Border包里面的API

来自定义自己的特色的边框

这个表给出了有关边框常用API

包括BorderFactory类

里边的静态方法

它们返回的都是Border对象

还有Swing组件

用来设置边框的这个API

另一个Swing中有用的特性

就是我们可以给组件来设置观感

观感什么就是LookAndFeel

我们可以使用UIManager类

所提供的setLookAndFeel静态方法

来设置组件的观感

设置好观感以后再让它变成可见

Java为我们提供了跨平台的观感

那么我们可以利用

UIManager类提供的

getCrossPlatformLookAndFeelClassName

这个静态方法获得类名

程序所属系统的观感我们也可以取得

那这可以也是利用

UIManager类提供的方法

这是getSystemLookAndFeel

这个方法就可以获得

目前的操作系统平台

它的LookAndFeel类名

我们不仅可以设置组件的观感

还可以设置顶层容器的观感

顶层容器JFrame和JDialog

都是重量级的组件

所以它是依赖于操作系统的

当使用操作系统不同的时候

所显示的顶层容器

它的观感就是外观

和感觉就会是不同的

那针对这两个顶层容器

有一个静态的方法

专门为它设置观感这个就是

setDefaultLookAndFeeldecorated

如果它的参数是true

那就会选用默认的观感

也就是外观和感觉

如果参数是false

那就会选用操作平台的观感

这里给出了几个

比较常用的观感的例子

从Java6开始提供了一种

叫做桌面API的

这样一个应用程序接口

是用来干什么的呢

比如说我们程序中

如果需要使用本地的

某些应用程序

来处理相关的文件

比如用某个应用程序

来打开某个特定类型的文件

那这个时候我们这个桌面API

就可以来调用本地的应用程序

具体来讲桌面API允许Java应用程序

完成这样三件事情

一是可以用主机平台上

默认的浏览器去打开一个UIL

这是由DeskTop的browse

方法来完成的

还有可以启用主机平台上

默认的邮件客户端

对于特定的文件还可以启用

主机平台上与之

相关联的应用程序

对文件进行打开编辑

打印这些操作

这一节我们了解了Swing组件

和它容器的一些

共同的有用的特性

包括Action对象边框观感

还有桌面API

好 这一节内容就是这些

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

7.14-其它Swing特性笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。