第4章 GUI程序设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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, 编写事件的处理代码。 第三、将监听器对象注册给事件源,这样关联之后才能使 得事件发生后能执行相应的处理代码。
相关文档
最新文档