第4章 GUI程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Swing中与文字输入有关的组件主要包括JTextField、
JTextArea、JPasswordField和JTextPane,其中JTextField、 JPasswordField是单行的文本输入组件,JTextArea是多行的 文本输入组件,JTextPane可以设置其中文本的格式,它们都 继承自JTextComponent类
4.3 GUI基本元素
任务4 文本复制
编程实现一个文本复制程序,用户可以在左侧文本区中键入内容,
选中文本后,点击copy按钮可将选中的文本复制到右边的文本区 中,运行效果如图所示。
任务5 字体选择器
编程实现一个字体选择器, 用户可以选择字体、字号、
样式和颜色,用户键入文
本内容时,文本区回显用 户键入的内容,并采用用 户选择的字体、字号、样 式和颜色。 运行效果如图所示。
列的网格区域,每个网格放置一个组件。在容器上添加组件 时,它们会按从左到右、从上到下的顺序在网格中排列。
4、BoxLayout
BoxLayout箱式布局是在Swing中新增加的一种布局管理器,
它允许多个组件全部垂直摆放或全部水平摆放。BoxLayout
布局管理器按照自上而下(y轴)或者从左到右(x轴)的顺
三、组合框JComboBox
• Swing通过JComboBox类支持组合框(一个文本框和下拉
列表的组合),组合框通常显示一个可选条目,可允许用
户在一个下拉列表中选择多个不同条目
4.4 菜单与工具栏
任务6 简单记事本界面
编程模拟一个简单记事本 界面,包含文件的新建、
打开操作命令和文本的剪
切、复制、粘贴命令,以 及退出程序的操作命令,
在任务6的基础上,创建确认退出的对话框,当用户选择退出菜
单或点击退出按钮时,弹出该对话框请用户确认退出操作。运行 效果如图所示。
知识点:JDialog、JOptionPane、 JFileChooser
一、JDialog
• JDialog,Swing中的对话框,依赖于上层组件(窗口或对话
框),一般是一个临时的窗口,主要用于显示提示信息或接受 用户输入。
知识点:选择型组件
一、单选按钮JRadioButton
• JRadioButton单选按钮必须配置成组才能实现多选一,否
则仍然能够多选。
• 性别选择就应使用JRadioButton单选按钮组实现。
二、复选框JCheckBox
• JCheckBox,复选框,实现一组选项中的多选功能
• 例程:模拟考试系统的答题界面
6、创建菜单系统案例
例程:模拟一个学生管理系统的菜单系统
二、工具栏
• Swing中JToolBar类提供了工具栏的属性和方法,用来放
置各种常用功能命令的按钮。
• 对于大多数的外观,用户可以将工具栏拖到单独的窗口中 (除非 floatable 属性被设置为 false)。
4.5 对话框
任务7 确认退出对话框
• Java图形用户界面事件处理的过程
• 例程:典型的按钮点击事件
使用文本框收集用户输入的学生信息,点击“确定”按钮
后将学生信息回显到界面右侧空白区域,点击“重置”按钮将同 时清空文本框填入的信息和右侧的回显信息。运行效果如图所示。
4.2 容器与布局
任务3 图形用户界面的四则运算
编程实现图形用户界面的四则运算程序,加法、乘法运算的
2、JMenu菜单
• JMenu是菜单栏上放置的菜单。每一个菜单由一些菜单项组成。 可以通过JMenuBar类的add()方法,把JMenu对象放置在
JMenuBar对象上(即设置菜单栏上的主菜单)。
3、JMenuItem菜单项
• 菜单项代表具体的菜单操作命令,可以通过JMenu类的
add()方法,把JMenuItem菜单项加到JMenu菜单中。
• JTextComponent类的常用方法,见教材表4-4
任务2 登陆验证功能
完善任务1,令登陆窗体可 以响应用户的登陆请求,在 用户输入账号、密码,并点 击“登陆”按钮后进行身份 验证,并反馈登陆成功与否 的信息。 运行效果如图所示。
知识点:事件处理机制
• 当GUI上的组件与用户发生交互,触发一定的事 件后执行相应的事件处理代码,使得GUI能“动”
并激活它时显示的“右拉式 (pull-right)”菜单。
5、JSeparator分隔符
• JSeparator 常用作菜单项之间的分隔符,以便将菜单项分成
几个逻辑组。 • 可以使用 JMenu 或JPopupMenu 的 addSeparator() 方法来 创建和添加一个分隔符,而不是直接使用 JSeparator。 • JSeparator 还可能用于 GUI 中任何一个需要可视化分隔符 的地方。
• 任务5 字体选择器
• 任务6 简单记事本界面 • 任务7 确认退出对话框 • 任务8 使用表格
4.1 认识GUI程序
任务1 登陆窗体
编程实现一个登陆窗体,这在信息管理系统中是及其常见的。 效果如图所示。
知识点:Swing包、创建窗体
一、Swing包
GUI,即图形用户界面(Graphics User Interface),它是 用户与应用程序之间的一个交互接口。
Java中,为了方便GUI程序的开发,设计了专门的类库来 生成各种标准图形界面元素,Swing组件便是其中常用的一种, 类库是javax.swing包。
• Swing相关的包,见教材表4-1
• 常用Swing组件类层次图,见教材图4-2
二、创建窗体
1、窗体JFrame
• JFrame 类就是一个顶层容器类,允许用户把其他组件添 加到它里面,把它们组织起来,并把它们呈现给用户。
运行效果分别如图所示。
知识点:JPanel、布局管理器
一、JPanel
• JPanel,Swing中的中间层容器面板,继承自
javax.swing.JComponent,主要用于放置Swing轻量级组件, JPanel的对象也可以作为顶层容器的内容面板来使用。
• 将JPanel与布局策略结合使用可以更有效地进行界面设计和管
序布局依次加入组Fra Baidu bibliotek。
5、null布局
• 若想精确地指定各个组件的位置和大小,我们可以使用容器
的setLayout()方法,将参数设为null,表示取消容器的布局 管理器设置,即null布局。
• 若采用了null布局,就需要我们为各个组件设置位置和大小, 应配合组件的setBounds()方法,或setLocation()方法、 setSize()方法使用。
Java高级程序设计
第4章 GUI程序设计
第4章 GUI程序设计
4.1 认识GUI程序
4.2 容器与布局
4.3 GUI基本元素 4.4 菜单与工具栏 4.5 对话框 4.6 表格
本章目标
创建图形用户界面
实现界面与用户的交互
使用Swing常用组件
本章任务
• 任务1 登陆窗体 • 任务2 登陆验证功能 • 任务3 图形用户界面的四则运算 • 任务4 文本复制
类推。
2、BorderLayout
BorderLayout边界布局是一种比较简单的布局策略,它将
容器分为NORTH、SOUTH、WEST、EAST、CENTER五
个区域,每个区域容纳一个组件,这五个区域被定义为
BorderLayout类的5个静态常量。
3、GridLayout
GridLayout网格布局是像棋盘一样将容器划分成若干行×
• JDialog必须要依赖于某个窗口或组件,当它所依赖的窗口或组
件消失,对话框也将消失,当它所依赖的窗口或组件可见时,
对话框又会自动恢复。
二、JOptionPane
• JOptionPane类提供了一些静态方法用于显示各种对话框,
这些对话框都是模式的,主要包含四种类型:消息对话框、
输入对话框、确认对话框和选项对话框。
4.6 表格
任务8 使用表格
编程实现一个简 单学生成绩管理
程序,可以录入
和显示学生姓名、 班级和成绩信息。 运行效果如图所 示。
知识点:JTable
• 表格是在设计图形用户界面时非常重要的一种组件,特别
是当我们需要将较多的统计数据非常清晰而有条理地呈现
在用户面前时,表格的运用可以达到很好的效果
• Swing实现表格的组件是JTable
实训任务
[实训 4-1] 编写简易计算器界面,并实现其计算功能。
[实训 4-2] 自行设计一个输入学生基本信息的窗口,要包含能输入学
生基本信息的各种组件,具有选择性质的要使用相应的选择型组件,
还要求包含两个按钮(确定和重置)和一个不可编辑的文本区。功能 要求:点击确定后能在文本区中显示出学生输入的信息,点击重置能 撤销之前的输入。
理。
二、布局管理器
1、FlowLayout
FlowLayout 是JPanel的缺省布局管理器,其布局策略是:组件
按从上到下、从左到右的顺序进行放置,如果容器足够宽,第一个组件
先添加到容器中第一行的最左边,后续的组件依次添加到上一个组件的
右边,如果当前行已放置不下该组件,则放置到下一行的最左边,依此
• 按钮JButton类是图形界面中使用最多的一个组件,使用按钮
可以与用户交互,响应鼠标的点击,可以完成用户想要完成的 一些功能。
• JButton是继承自抽象类AbstractButton的,该抽象类中定义了
许多组件的设置和处理的方法,AbstractButton类的常用方法
见教材表4-3
4、文本框JTextField和密码框JPasswordField
• JMenuItem与JButton及其相似,点击JMenuItem同样产 生ActionEvent事件。
4、JPopupMenu弹出菜单
• JPopupMenu可实现弹出菜单,弹出菜单是一个可弹出并
显示一系列选项的小窗口。JPopupMenu 用于用户在菜
单栏上选择项时显示的菜单。它还用于当用户选择菜单项
并实现编辑功能(剪切、
复制、粘贴)和退出功能。 效果如图所示。
知识点:菜单、工具栏
一、菜单
菜单和工具栏几乎是所有图形用户界面程序中必备的组件, Swing包中有一系列专门用来创建菜单组件的类,如图所示。
1、JMenuBar菜单栏
• JMenuBar是放置菜单的容器。可以通过JFrame类的 setMenuBar()方法把JMenuBar对象加入一个框架中。
• JOptionPane类创建各种标准对话框的静态方法,见教材 表4-6
三、JFileChooser
• JFileChooser,文件选择器,用于显示打开或保存文件的
对话框。
• JFileChoose本身只是一个针对文件操作的对话框,并没 有文件读取或文件存盘的功能,要实现这样的功能,必须 要结合输入输出流的使用。
实训任务
[实训 4-3] 参考下图所示界面,实现一个猜数字游戏程序。
实训任务
[实训 4-4] 实现如图所示的生肖显示器,当选择出生年份时,可显示对 应的生肖图片。
• JFrame的常用方法,见教材表4-2
2、标签JLabel
• JLabel类是一个用来在界面上显示文本或图像的类,创建
标签时即可指定要显示的文本或图像,但运行时它们不能
被用户修改。
• 标签不能响应输入事件,不能与用户交互,即不能像按钮 那样点击后程序可以做出某种响应,标签主要用来显示。
3、按钮JButton
起来的这种机制就叫做事件处理机制。
• Java采用叫做授权事件模型(Delegation Event Mode)的事件 处理机制,也称为委托事件模型。
• 采用授权事件模型进行事件处理一般包含三步骤:
第一、确定事件源Event Source和事件Event。
第二、实现可以监听和处理事件的监听器Event Listener, 编写事件的处理代码。 第三、将监听器对象注册给事件源,这样关联之后才能使 得事件发生后能执行相应的处理代码。
JTextArea、JPasswordField和JTextPane,其中JTextField、 JPasswordField是单行的文本输入组件,JTextArea是多行的 文本输入组件,JTextPane可以设置其中文本的格式,它们都 继承自JTextComponent类
4.3 GUI基本元素
任务4 文本复制
编程实现一个文本复制程序,用户可以在左侧文本区中键入内容,
选中文本后,点击copy按钮可将选中的文本复制到右边的文本区 中,运行效果如图所示。
任务5 字体选择器
编程实现一个字体选择器, 用户可以选择字体、字号、
样式和颜色,用户键入文
本内容时,文本区回显用 户键入的内容,并采用用 户选择的字体、字号、样 式和颜色。 运行效果如图所示。
列的网格区域,每个网格放置一个组件。在容器上添加组件 时,它们会按从左到右、从上到下的顺序在网格中排列。
4、BoxLayout
BoxLayout箱式布局是在Swing中新增加的一种布局管理器,
它允许多个组件全部垂直摆放或全部水平摆放。BoxLayout
布局管理器按照自上而下(y轴)或者从左到右(x轴)的顺
三、组合框JComboBox
• Swing通过JComboBox类支持组合框(一个文本框和下拉
列表的组合),组合框通常显示一个可选条目,可允许用
户在一个下拉列表中选择多个不同条目
4.4 菜单与工具栏
任务6 简单记事本界面
编程模拟一个简单记事本 界面,包含文件的新建、
打开操作命令和文本的剪
切、复制、粘贴命令,以 及退出程序的操作命令,
在任务6的基础上,创建确认退出的对话框,当用户选择退出菜
单或点击退出按钮时,弹出该对话框请用户确认退出操作。运行 效果如图所示。
知识点:JDialog、JOptionPane、 JFileChooser
一、JDialog
• JDialog,Swing中的对话框,依赖于上层组件(窗口或对话
框),一般是一个临时的窗口,主要用于显示提示信息或接受 用户输入。
知识点:选择型组件
一、单选按钮JRadioButton
• JRadioButton单选按钮必须配置成组才能实现多选一,否
则仍然能够多选。
• 性别选择就应使用JRadioButton单选按钮组实现。
二、复选框JCheckBox
• JCheckBox,复选框,实现一组选项中的多选功能
• 例程:模拟考试系统的答题界面
6、创建菜单系统案例
例程:模拟一个学生管理系统的菜单系统
二、工具栏
• Swing中JToolBar类提供了工具栏的属性和方法,用来放
置各种常用功能命令的按钮。
• 对于大多数的外观,用户可以将工具栏拖到单独的窗口中 (除非 floatable 属性被设置为 false)。
4.5 对话框
任务7 确认退出对话框
• Java图形用户界面事件处理的过程
• 例程:典型的按钮点击事件
使用文本框收集用户输入的学生信息,点击“确定”按钮
后将学生信息回显到界面右侧空白区域,点击“重置”按钮将同 时清空文本框填入的信息和右侧的回显信息。运行效果如图所示。
4.2 容器与布局
任务3 图形用户界面的四则运算
编程实现图形用户界面的四则运算程序,加法、乘法运算的
2、JMenu菜单
• JMenu是菜单栏上放置的菜单。每一个菜单由一些菜单项组成。 可以通过JMenuBar类的add()方法,把JMenu对象放置在
JMenuBar对象上(即设置菜单栏上的主菜单)。
3、JMenuItem菜单项
• 菜单项代表具体的菜单操作命令,可以通过JMenu类的
add()方法,把JMenuItem菜单项加到JMenu菜单中。
• JTextComponent类的常用方法,见教材表4-4
任务2 登陆验证功能
完善任务1,令登陆窗体可 以响应用户的登陆请求,在 用户输入账号、密码,并点 击“登陆”按钮后进行身份 验证,并反馈登陆成功与否 的信息。 运行效果如图所示。
知识点:事件处理机制
• 当GUI上的组件与用户发生交互,触发一定的事 件后执行相应的事件处理代码,使得GUI能“动”
并激活它时显示的“右拉式 (pull-right)”菜单。
5、JSeparator分隔符
• JSeparator 常用作菜单项之间的分隔符,以便将菜单项分成
几个逻辑组。 • 可以使用 JMenu 或JPopupMenu 的 addSeparator() 方法来 创建和添加一个分隔符,而不是直接使用 JSeparator。 • JSeparator 还可能用于 GUI 中任何一个需要可视化分隔符 的地方。
• 任务5 字体选择器
• 任务6 简单记事本界面 • 任务7 确认退出对话框 • 任务8 使用表格
4.1 认识GUI程序
任务1 登陆窗体
编程实现一个登陆窗体,这在信息管理系统中是及其常见的。 效果如图所示。
知识点:Swing包、创建窗体
一、Swing包
GUI,即图形用户界面(Graphics User Interface),它是 用户与应用程序之间的一个交互接口。
Java中,为了方便GUI程序的开发,设计了专门的类库来 生成各种标准图形界面元素,Swing组件便是其中常用的一种, 类库是javax.swing包。
• Swing相关的包,见教材表4-1
• 常用Swing组件类层次图,见教材图4-2
二、创建窗体
1、窗体JFrame
• JFrame 类就是一个顶层容器类,允许用户把其他组件添 加到它里面,把它们组织起来,并把它们呈现给用户。
运行效果分别如图所示。
知识点:JPanel、布局管理器
一、JPanel
• JPanel,Swing中的中间层容器面板,继承自
javax.swing.JComponent,主要用于放置Swing轻量级组件, JPanel的对象也可以作为顶层容器的内容面板来使用。
• 将JPanel与布局策略结合使用可以更有效地进行界面设计和管
序布局依次加入组Fra Baidu bibliotek。
5、null布局
• 若想精确地指定各个组件的位置和大小,我们可以使用容器
的setLayout()方法,将参数设为null,表示取消容器的布局 管理器设置,即null布局。
• 若采用了null布局,就需要我们为各个组件设置位置和大小, 应配合组件的setBounds()方法,或setLocation()方法、 setSize()方法使用。
Java高级程序设计
第4章 GUI程序设计
第4章 GUI程序设计
4.1 认识GUI程序
4.2 容器与布局
4.3 GUI基本元素 4.4 菜单与工具栏 4.5 对话框 4.6 表格
本章目标
创建图形用户界面
实现界面与用户的交互
使用Swing常用组件
本章任务
• 任务1 登陆窗体 • 任务2 登陆验证功能 • 任务3 图形用户界面的四则运算 • 任务4 文本复制
类推。
2、BorderLayout
BorderLayout边界布局是一种比较简单的布局策略,它将
容器分为NORTH、SOUTH、WEST、EAST、CENTER五
个区域,每个区域容纳一个组件,这五个区域被定义为
BorderLayout类的5个静态常量。
3、GridLayout
GridLayout网格布局是像棋盘一样将容器划分成若干行×
• JDialog必须要依赖于某个窗口或组件,当它所依赖的窗口或组
件消失,对话框也将消失,当它所依赖的窗口或组件可见时,
对话框又会自动恢复。
二、JOptionPane
• JOptionPane类提供了一些静态方法用于显示各种对话框,
这些对话框都是模式的,主要包含四种类型:消息对话框、
输入对话框、确认对话框和选项对话框。
4.6 表格
任务8 使用表格
编程实现一个简 单学生成绩管理
程序,可以录入
和显示学生姓名、 班级和成绩信息。 运行效果如图所 示。
知识点:JTable
• 表格是在设计图形用户界面时非常重要的一种组件,特别
是当我们需要将较多的统计数据非常清晰而有条理地呈现
在用户面前时,表格的运用可以达到很好的效果
• Swing实现表格的组件是JTable
实训任务
[实训 4-1] 编写简易计算器界面,并实现其计算功能。
[实训 4-2] 自行设计一个输入学生基本信息的窗口,要包含能输入学
生基本信息的各种组件,具有选择性质的要使用相应的选择型组件,
还要求包含两个按钮(确定和重置)和一个不可编辑的文本区。功能 要求:点击确定后能在文本区中显示出学生输入的信息,点击重置能 撤销之前的输入。
理。
二、布局管理器
1、FlowLayout
FlowLayout 是JPanel的缺省布局管理器,其布局策略是:组件
按从上到下、从左到右的顺序进行放置,如果容器足够宽,第一个组件
先添加到容器中第一行的最左边,后续的组件依次添加到上一个组件的
右边,如果当前行已放置不下该组件,则放置到下一行的最左边,依此
• 按钮JButton类是图形界面中使用最多的一个组件,使用按钮
可以与用户交互,响应鼠标的点击,可以完成用户想要完成的 一些功能。
• JButton是继承自抽象类AbstractButton的,该抽象类中定义了
许多组件的设置和处理的方法,AbstractButton类的常用方法
见教材表4-3
4、文本框JTextField和密码框JPasswordField
• JMenuItem与JButton及其相似,点击JMenuItem同样产 生ActionEvent事件。
4、JPopupMenu弹出菜单
• JPopupMenu可实现弹出菜单,弹出菜单是一个可弹出并
显示一系列选项的小窗口。JPopupMenu 用于用户在菜
单栏上选择项时显示的菜单。它还用于当用户选择菜单项
并实现编辑功能(剪切、
复制、粘贴)和退出功能。 效果如图所示。
知识点:菜单、工具栏
一、菜单
菜单和工具栏几乎是所有图形用户界面程序中必备的组件, Swing包中有一系列专门用来创建菜单组件的类,如图所示。
1、JMenuBar菜单栏
• JMenuBar是放置菜单的容器。可以通过JFrame类的 setMenuBar()方法把JMenuBar对象加入一个框架中。
• JOptionPane类创建各种标准对话框的静态方法,见教材 表4-6
三、JFileChooser
• JFileChooser,文件选择器,用于显示打开或保存文件的
对话框。
• JFileChoose本身只是一个针对文件操作的对话框,并没 有文件读取或文件存盘的功能,要实现这样的功能,必须 要结合输入输出流的使用。
实训任务
[实训 4-3] 参考下图所示界面,实现一个猜数字游戏程序。
实训任务
[实训 4-4] 实现如图所示的生肖显示器,当选择出生年份时,可显示对 应的生肖图片。
• JFrame的常用方法,见教材表4-2
2、标签JLabel
• JLabel类是一个用来在界面上显示文本或图像的类,创建
标签时即可指定要显示的文本或图像,但运行时它们不能
被用户修改。
• 标签不能响应输入事件,不能与用户交互,即不能像按钮 那样点击后程序可以做出某种响应,标签主要用来显示。
3、按钮JButton
起来的这种机制就叫做事件处理机制。
• Java采用叫做授权事件模型(Delegation Event Mode)的事件 处理机制,也称为委托事件模型。
• 采用授权事件模型进行事件处理一般包含三步骤:
第一、确定事件源Event Source和事件Event。
第二、实现可以监听和处理事件的监听器Event Listener, 编写事件的处理代码。 第三、将监听器对象注册给事件源,这样关联之后才能使 得事件发生后能执行相应的处理代码。