当前课程知识点:Java程序设计 >  第七章 图形用户界面 >  7.12-原子组件(二) >  7.12-原子组件(二)

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

7.12-原子组件(二)在线视频

7.12-原子组件(二)

下一节:7.13-原子组件(三)

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

7.12-原子组件(二)课程教案、知识点、字幕

大家好 欢迎回来继续学习

Java语言程序设计

接下来我们

就来学习第二类原子组件

就是具有控制功能

可以用来输入信息的原子组件

首先我们来看按钮类

Abstract按钮是众多按钮类的超类

它是一个抽象类

从这张图上我们可以看到

继承AbstractButton

这个抽象类的有哪些

有JButton是普通的按钮

还有JToggleButton是

具有选择状态的按钮

包括多选按钮单选按钮

还有JMenuItem菜单项

菜单项里面又包括JCheckBoxMenuItem

和JRadioButtonMenuItem

还有一般的菜单项

这里给出了几种

常见的按钮的示意图

还有一种常见的组件就是列表JList

JList里面的表项一般是

允许可以选择一项或者是多项的

列表框JList它有几种

各有特色的构造方法

它的选项包括是否

可以添加删除等等

也提供了很多API可以用来

设置各选项的显示方式

选择模式等等

因为JList通常还有很多选项

所以经常会把它放在一个

带滚动条的JScrollPane里面

那么JList事件处理

一般可以分成两类

一类是取得用户选取的项目

那么它的事件监听器

是ListSelectionListener

还有就是对鼠标事件做出响应

它的事件监听器就是MouseListener

组合框也是非常常用的一种组件

JComboBox它有两种不同的形式

如果你地方够大

可以用下拉列表的方式

如果地方比较紧张

可以就用另一种更紧凑的方式

用下拉列表的这种模式

应该说它默认状态是不可编辑的

用户只能在下拉的列表

提供的内容中选择一个

那另一种是可编辑的模式

它的特点是多了一个文本区域

用户可以在这个文本区域里面

填入列表中不包括的内容

用组合框只需要很少的屏幕区域

那相对来说如果

你用一组RadioBox或是CheckBox

或者JList那占的空间就比较大了

当我们需要选择

连续的数值的时候

我们可以选择这种滑块的组件

或者我们可以用箭头上下

增加减少数值的这样的组件

这个Slider和Spinner

JSlider它在窗口中

占的地方就比较大

我们可以为它设置

它的最小值最大值初始的刻度

还可以设置它的方向

还可以在上面

标上刻度或者是文本

在JSlider上面移动滑竿的时候

就会触发Changed Event事件

JSpinner相对来说

它占的地方就比较小

其实它很类似于可编辑的

就是JComboBox

是一种复合组件

它有三个部分组成

有向上按钮向下按钮

和一个文本编辑区

我们可以通过按钮来选择待选项

也可以直接

在文本编辑区里面输入

这个和JComboBox不同的是

它的待选项是不会显示出来的

还有一类组件它是文本组件

文本组件就允许用户

在里面输入文本

那么有的组件是允许用户

简单的输入单行文本的

或者多行无格式的文本

或者多行文本

还可以有格式信息的

那么这些它都是

属于文本类的组件

我们从这个图上可以看出来

文本组件都从这个

JTextComponent继承而来

JTextComponent是一个抽象类

那么它的子类

可以分成三种类型

一个是JTextField

JPasswordField JFormedTextField

这些都是只能显示

和编辑一行文本的就像按钮一样

它们可以产生ActionEvent事件

那通常就是用户

需要输入少量的文本信息的时候

就可以用这个

JTextArea是一个

可以输入文本的区域

于是就可以在里面

输入和编辑多行文本

但是这些文本只能是单一风格的

不能对它进行不同的格式设置

通常就是用来输入长度比较大的

或者任意长度的无格式文本

或者用于显示无格式的帮助信息

那么如果是希望

显示和编辑多行文本

又可以设置它的样式的话

那就要用JEditorPane和JTextPane

接下来我们就通过一个例子

来体会一下这些

原子组件它们合在一起

共同作用的情况

这是一个简单的计算器的例子

非常简单只能做加减乘除运算

首先还要让你输入密码

输入密码正确以后

那就可以开始选择

进行加减乘除运算

接下来我们就来看一下

这个例题的源代码

好 现在我们就来看一下

这个简单计算器的例子

这个代码有点长

我们来看它的主要部分

我们从这个主方法这儿开始

我们看到主方法

先构造一个计算器对象Calulator

然后又构造一个Password对象

那么这个Password对象

是传给它的一个这个f

f是我们看到是

应该是这个我们构造的

一个JFrame对象JFrame对象

是应该在当前类的

构造方法中构造的

在Calulator这构造方法中

构造了一个主窗口

好 有了主窗口以后

我们去出一个密码对话框

密码填对了以后

就开始执行这个计算器的计算功能

你可以选加减乘除

输入数字就能计算了

大概是这样的过程

好 那现在看先构造由Calculator对象

我们来看Calculator的构造方法

在这儿构造了一个JFrame的

一个主窗口以后

要去取得它的内容面板

然后要在上面

去构造一个新建一个Panel

布局边框这个我们先不管它了

接下来我们要准备好

这个加减乘除的按钮

加减乘除都是

用单选按钮来表示的

我们构造了四个按钮

然后将这四个按钮加在哪儿去

加在我们刚才新建的

这个Panel上面P1

也就是P1这个Panel

是放加减乘除按钮的

我们来看一下前面给演示的这个图

也就是这个加减乘除按钮

是放在一个Panel上面的

好 接下来我们再来看

要把这四个按钮

把它放到一个组里面

因为这个单选按钮

你要把它放在一个组里面

放在一个ButtonGroup里面的话

就能够保证这四个按钮

只能四选一单选

所以我们要构造一个单选ButtonGroup

把它放在一个组里面

接下来就要为单选按钮

添加ItemListener事件监听器了

所以这个事件监听器

都是当前对象自己

所以把当前对象自己

这个对象添加到四个按钮上面去

就点了按钮以后要触发事件

好 接下来我们再来

看创建第二个Panel

第二个Panel上面要放操作数

要放操作数

所以我们先给出提示来

一个JLabel第一个操作数

一个JLabel是第二个操作数

然后接下来我们

要做一个下拉列表框

可选的数据列在这儿了

然后用这样一个字符串数组

作为选择的内容

去构造一个JComboBox

也就是说你可以一下拉列表

就选择参与操作 操作数

也可以自己来填写

所以setEditable

就说可编辑的设成数

接下来我们调用这个ComboBox

它的getEditor方法

去返回一个ComboBoxEditor

然后你就可以直接输入数字了

这就是即可以拉下来选

你可以直接输入

那么另一个操作数

是用这个Spinner来选择的

Spinner创建一个

有序变化的选择框

你上箭头下箭头就可以选个数

来参加运算 好

那接下来我们要

把这个操作数的组件

和这个Label我们都要

添加到这个操作数的Panel上面去

然后我们看添加的

L1和L2是刚才这个提示

第一个操作数第二个操作数

然后添加的这个Combo

和这个S1就是

这个下拉列表框和这个Spinner

用来选择两个操作数的

下面再创建第三个Panel

在一个新的Panel

这个上面要放什么

要放这个计算按钮

我们构造一个Button

上面写的计算

然后这个Label大家看创建的时候

它是一个空的

一个空的没有用的时候

接下来我们把这个计算按钮

和这空的用于显示文字内容的

这个Label都添加到

第三个Panel上面去

然后这个计算按钮

要添加事件监听器

也是当前对象自己

要添加事件监听器

好 那这三个Panel都准备好了以后

将它们都添加到内容面板上来

还要设置一个什么

设置一个DefaultButton

就是缺省的Button

也就是说我们在用

很多软件时候看到你一打开的时候

它的Button就有一个是已经选中的了

如果你可以打回车

就相当于按上这个Button

所以我们要设置一下

这个缺省的Button

就让它去计算这个Button1

然后这整个窗口的关闭按钮

设置一下它的效果是退出

好 这个我们看到

这就是这个calculate

它的构造方法

calculate的构造方法

好 接下来我们就来看事件响应代码

第一个我们来看ItemStateChanged

就是单选按钮被点的时候触发

那么就要看它这个事件源

getSource到底是哪个按钮被点了

然后它的操作符到底是

第一个第二个第三个第四个

就加减乘除它的运算符就确定了

再看点击计算按钮的时候

触发什么

触发ActionPerformed

那么这时候就要

把你填的操作数取出来了

要把这个ComboBox里面

选的那个操作数

或者填的那个操作数取出来

要把这个Spinner里面

那个操作数取出来

都作为String取出来

然后再用这个Double类的

parseDouble方法

把它转成Double型的数据

然后接下来就开始计算

给你的操作符是加减乘除是几

比如说第一个操作符按钮

那你就加法

第二个就是减法等等

就是用于取出来数做计算

如果说运算符没有选择

就点计算了

那么就显示一个文字

请选择运算符

如果说运算符选择对了计算

大家看刚才那个L3

那个空的Label是干嘛的

用来放计算结果的

我们就把计算结果放到上面去

好 接下来我们就来看

这个输入密码的对话框的这个

输入密码以后的

这个ActionListener它的响应

我们在主方法中构造好了

这个计算器以后

那接下来马上就弹出一个对话框

让你输入密码

那么我们来看这个Password

它的构造方法里面

首先就新建一个对话框

请输入密码

就设这个标题请输入密码

然后在这个对话框里面

也是要有它的顶层的ContentPane

也是要有布局等等这些

关键是里面要有一个JTextField

然后要把它添加到

这个dialogPane里面去

然后在这个dialogPane里面

还要添加一个Label这是个密码

接下来要构造一个JPasswordField

也把它添到了dialogPane里面去

然后要有按钮确定退出

那么也要设定回车

对应的缺省的按钮这些

那么它的注册监听器

就是这个对密码类

它自己当前的对象自己

那我们来看在它的

actionPerformed那里面

如果你选的是确定

那么接下来就是比较密码了

比较密码正确就关闭对话框

显示主窗口

那这时候你就可以去做计算了

如果密码错误的话

那么就显示请重新输入

如果选择退出

那么就整个程序就退出了

那么这个例题里面

可以说综合运用了

我们比较常用的一些组件

仔细的每一行的代码

没有时间一行行去讲

那么大家课下可以去慢慢

读一下这个代码

程序会挂到网上去的

好 这一节我们学习了具有控制功能

能够让用户来输入信息的

这一类原子组件

好 这一节内容就是这些

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.12-原子组件(二)笔记与讨论

也许你还感兴趣的课程:

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