第六章 图形用户界面
解析JAVA程序设计第六章课后答案

第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。
对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。
2.试说明容器与组件之间的关系。
组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。
容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。
3.阅读下面程序,说明其运行结果和功能。
//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。
//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。
图形用户界面设计PPT课件

2020年12月1日星期二
NCEPU
框架
❖ 框架是一个带有标题框的窗口,窗口的大小可以 改变。
❖ 框架在实例化时默认为是不可见的,最小化的, 必须通过setSize方法来设定框架的大小,并使用 setVisible(true)使框架可见。
2020年12月1日星期二
NCEPU
输im出po为rt:java.awt.*; 第二节 框架
public static void main(String[] args) {
JFrame frame = new JFrame("HelloWorldSwing");
final JLabel label = new JLabel("Hello World!");
frame.getContentPane().add(label);
如 器: ,位 这置 样、 就大可小以、创字建体出文件、复对颜杂话色的框等界类。 面
2020年12月1日星期二
NCEPU
Compon第en一t 节ja抽va.象lan窗g.O口bje工ct具集AWT
颜 色
jav字 体a.aw组件t包中的布局 主要复框类选组
图 像
事 菜单 件 组件
图 形
类 以及类 组件类类的继类承关系类 类 类 类 类
}
JFrame的使用
2020年12月1日星期二
NCEPU
框架
❖ 框架(Frame)类方法 ▪ public void setTitle ( String title ) 设置或修改框架的标题 ▪ public String getTitle ( ) 获取框架的标题 ▪ Public void setBackground ( Color c ) 设置框架的背景颜色
第六章 (2)MATLAB高级图形设计

。此时,Value数据就已经存储在句柄值为 ui_handle的对象内。
② 在执行的过程中若要取回该变量,可以通过以下 方式在任一Callback中获取该数据值:
Value=get(‘ui_handle’,’UserData’);
用的有hObject、 eventdata和 handles。
hObject:当前回调函数的图形对象句柄;
eventdata:预留的输入参数;
handles:存放图形窗口中所有图形对象句柄的结 构体,存储了所有在图形界面中的控件、菜单、 坐标轴对象的句柄,可以用于在function之间传 递数据。例如:handles.pushbutton1就是按钮 pushbuton1的句柄,handles.axes1就是axes1 的句柄。
global A;
25
多个回调函数之间变量的传递
方法二:直接通过对象的UserData属性来进行各个
C注al意lb:ack此之方间法的在数操据作存上取简操单作且。方便,但每个对
①象次于首设为仅变复先该V能量杂a必对存时的lu须象取,操e,一先作先的则个前会将句输变的造数柄入量 变 成据值以值 量 很存为下, 值 多储ui程因 就 不_到h序此 会 便一an即被当 。个d可覆同l特e盖一:,定掉对需的,象要对这存存象样储储中对两的,值假
➢string属性是按钮上显示的文字,默认的string属 性与Tag相同。
3.滚动条(Slider) (1)常用属性 滚动条的常用回调函数是callback,当每次单击滚动条
改变当前值时调用该函数。 (2)回调函数 常用属性有value、max、min和SliderStep。
图形用户界面

Window Panel
ScrollPane
TextArea TextField
Dialog Frame
FileDialog
Component(组件)
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个可以以图形化的方式显 示在屏幕上并能与用户进行交互的对象,例如一个按 钮,一个文本框等。
10. f.add("East", new Button("East"));
11.
//第一个参数表示把按钮添加到容器的East区域
12. f.add("West", new Button("West"));
13.
//第一个参数表示把按钮添加到容器的West区域
14. f.add("Center", new Button("Center"));
LayoutManager (布局管理器)
为了使生成的图形用户界面具有良好的平台无关性, Java语言中,提供了布局管理器这个工具来管理组件 在容器中的布局,而不使用直接设置组件位置和大小 的方式。
每个容器都有一个布局管理器,当容器需要对某个组 件进行定位或判断其大小尺寸时,就会调用其对应的 布局管理器。
North区域缺少组件
West区域缺少组件
Center区域缺少组件
GridLayout
使容器中各个组件呈网格状布局
1. import java.awt.*;
2. public class ButtonGrid {
3. public static void main(String args[]) {
Java第06章--1(AWT与Swing)

• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );
第6章 图形用户界面(4)

1.3 菜单项的事件处理
当用户选定一个菜单项时,该菜单 项将发生ActionEvent事件。 关于ActionEvent事件的处理,重申三要点: (1) 安装侦听器 (implements ActionListener) (2) 通过addActionListener方法设置侦听 (3) 重写方法actionPerformed实现事件处理
7
1.2 菜单的创建和组织
8
1.2 菜单的创建和组织
JMenuItem的快捷键可以是Ctrl + 字符键或Alt + 字符键 JMenuItem Ctrl Alt 的组合,可用setAccelerator方法设置: 参数1指向快捷键字符。参数2指向控制字符,通常是 KeyEvent. CTRL_MASK(Ctrl),KeyEvent.ALT_MASK(Alt)。
第5章 图形用户界面
黄淮学院 计算机科学系 王春华 sunrisefe@
1
2
3
1.给GUI应用程序添加菜单
• 1.1 菜单概述 • 1.2 菜单的创建和组织 • 1.3 菜单项的事件处理
4
1.1 菜单概述
5
1.2 菜单的创建和组织
6
1.2 菜单的创建和组织
说明:因JMenu 是JMenuItem的 子类,故 add(JMenuItem menuItem)也可 加入JMenu菜单。
18
3.给GUI应用程序添加工具栏
整个流程与窗口 创建、往窗口中 添加组件过程是 一样的 工具栏用JToolBar类及其子类创建,它是一个容器 组件,在工具栏组件中可以容放其他组件。
19
工具栏设置布局:setLayout方法,默认FlowLayout 流式排放。 工具栏添加组件:add方法向。也可通过 “addSeparator()”方法在工具栏中加入分隔,以对 工具按钮按功能分组。
图形用户界面设计-授课版

直观性、易用性、美观性、个性化。
图形用户界面的历史与发展
01 早期阶段
命令行界面,需要用户输入指令进行操作。
02 中期阶段
图形用户界面出现,如Windows 95等操作系统, 提供了窗口、图标、菜单等元素。
03 当前阶段
触摸屏、语音识别等新型交互方式的出现,使得 图形用户界面更加多样化、智能化。
设计理念
通过情感化的设计元素,引发用户的情感共鸣,增强用户对产品的 认同感和忠诚度。
设计特点
采用拟人化设计、情感化交互方式、故事化的场景设计等,营造出 温馨、亲切的氛围。
应用场景
适用于需要增强用户情感联系的应用,如儿童教育应用、健康管理应 用等。
THANKS
感谢观看
营造出简洁明了的视觉效果。
应用场景
适用于工具类应用,如计算器、 天气应用等,以及需要快速访问
常用功能的场景。
设计案例二:富有创意的界面设计
设计理念
01
打破传统界面设计规则,采用独特、富有创意的设计元素,吸
引用户的注意力,提升用户体验。
设计特点
02
大胆使用色彩、不规则形状、动态效果等,营造出独特、个性
绘制出多个界面草图。
确定设计风格
选择适合目标用户群体和 设计目标的视觉风格。
筛选方案
根据用户需求和设计目标, 筛选出具有可行性和创新 性的草图方案。
设计原型
制作原型
使用工具软件将草图方案 制作成可交互的界面原型。
添加交互效果
在原型中加入交互效果, 如动画、交互动画等,以 提高用户体验。
测试可用性
邀请目标用户对原型进行 测试,收集用户反馈,以 便进一步优化设计。
设计需求分析
第6章图形用户界面

6.1 概述
₪ Java语言先后提供了两类图形用户界面技术: AWT和Swing。
2
1.AWT图形用户界面
图6.1 java.awt包中主要类及组件类的继承关系
3
ng.Object
2.Swing图形用户界面
ponent 组件类 java.awt.Container 容器类 java.awt.Frame 框架类 javax.swing.JFrame 框架类 java.awt.FileDialog 文件对话框类 java.awt.Dialog 对话框类 javax.swing.JComponent 组件类 javax.swing.JDialog 对话框类 java.awt.Window 窗口类
₪ 组件(Component)是图形用户界面的基本组 成元素,凡是能够以图形化方式显示在屏幕上, 并能够与用户进行交互的对象均为组件,如菜单、 按钮、标签、文本框、滚动条等。
₪ 组件分类
■ ponent ■ java.awt.MenuComponent
7
6.2.1 容器组件
13
6.2.2 框架JFrame
₪ 例6.1 一个简单的框架。
■ 要求:设置框架的标题、位置、大小、背景色、单击 窗体右上角关闭图标时结束程序。 ■ 程序结果如下图示。
14
6.2.3 布局管理器
₪ 容器对其中所包含组件的排列方式,包括组件的位 置和大小设定,被称为容器的布局(Layout)。 ₪ 为了使图形用户界面具有良好的平台无关性,Java 语言提供了布局管理器来管理容器的布局,而不建 议直接设置组件在容器中的位置和尺寸。如果一个 容器已经定义了布局管理器,则不能再设置其中各 个组件的大小和位置。 ₪ 布局是容器类的特性,每种容器都有一种默认布局。 ₪ 如果一个容器要改变默认布局管理器,可以调用 setLayout()方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CheckBoxMenuItem
Component
Component Component Component
List ScrollBar TextComponent TextArea TextField
PopupMenu
一、图形用户界面概述
4. Swing组件 组件 Swing是以AWT为基础构建的,javax.swing包提供了更加 丰富的、功能更强的Swing组件,它的大多数组件都是在AWT 组件前面加一个“J”,Swing组件的用法与AWT基本相同,也 使用AWT的事件处理机制,只是组件风格不同,同时也增加了 一些原来没有的组件特性。Swing组件无需同位体,故称为轻 组件。由于Swing组件在设计上和AWT完全不同,轻组件把与 显示组件有关的许多工作和处理事件的工作交给相应的java程 序完成,这些类被添加到Java的运行环境中,具有外观不依赖 平台的功能特性,且具有更高的性能。
一、图形用户界面概述
Button Canvas CheckBox Choice java.awt Component Container Component Label FlowLayout BorderLayout CardLayout Gridlayout GridBagLayout MenuComponen t AWTEvent MenuBar Menu MenuItem
二、Swing常用组件 常用组件
AbstractButton JComboBox JFileChooser JInternalFrame JLabel JComponent JLayeredPane JList java.awt.container JMenuBar JPanel ng.object …… JTable JTextComponent …… JEditorPane JTextArea JTextField JFormattedTextField JPasswordField JDesktopPane JButton JMenuItem JToggleButton JCheckBox JCheckBoxMenuItem JMenu JRadioButtonMenuIte m JRadioButton
一、图形用户界面概述
3. AWT组件 组件 AWT是API为Java程序提供的建立图形用户界面GUI工具集, AWT可用于Java Applet和Application中。它提供用户界面组件、 事件处理模型、图形和图像工具、布局管理器等,可以进行灵 活的窗口布局,与特定窗口的尺寸和屏幕分辨率无关。 java.awt包中提供了GUI设计所需的类和接口,主要包括组 件、容器与布局管理器等相关概念。由java.awt包中的类创建的 组件称为重组件,每创建一个组件时,都有一个相应的本地组 件在为它工作,AWT组件设计原理是把与显示组件有关的许多 工作和处理事件的工作交给相应的本地组件。基于重组件的GUI 设计有许多不足之处,如同一程序在不同的平台可能有不同的 外观呈现,使用AWT进行GUI设计会消耗大量的系统资源。
一、图形用户界面概述
2. 容器 顾名思义,容器是用来容纳组件的。容器(Container)是 Component类的子类,由Container类的子类和间接子类创建 的对象均称为容器,容器本身也是一种组件,可以通过add()方 法向容器中添加组件,也可以把一个容器添加到另一个容器中 以实现容器的嵌套,容器具有组件的所有性质。 Java中AWT和Swing组件各有三类常用的容器,AWT的容 器有Frame、Panel和Applet,Swing的容器有JFrame、 JPanel和JApplet,另外Swing还有JScrollPane(滚动窗格)、 JSplitPae(拆分窗格)和JLayeredPane(分层窗格)等容器。
一、图形用户界面概述
使用框架:(1)框架创建 框架外观控制 框架信息显示 框架创建(2)框架外观控制 使用框架 框架创建 框架外观控制(3)框架信息显示
import javax.swing.*; import java.awt.*; public class HelloWorld{ public static void main(String args) { TextFrame frame=new TextFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();}} class TextFrame extends JFrame{ public TextFrame(){ setTitle("HelloWorld");setSize(WIDTH,HEIGHT); TextPanel panel = new TextPanel(); Container contentPane = getContentPane(); contentPane.add(panel); public static final int WIDTH = 300; public static final int HEIGHT = 200; } class TextPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); g.drawString("Hello, World!", x, y);} public int x=100; public int y=100;}
方法 Frame() Frame(String title) setsize(int width,int height) setBackground(Color c) setVisible(boolean b) String getTitle() void setTitle(String title) Boolean isResizable() Image getIconImage() void setIconImage(Image img) setBounds(int x,int y,int width, int height) 功能 建立一个没有标题的Frame类对象 建立一个标题为title的Frame类对象 设置Frame对象的宽和高 设置Frame对象的背景色 设置Frame对象的可见性 获得Frame对象的标题 设置Frame对象的标题 测试窗口是否可以改变大小 返回窗口的最小化图标 设置Frame对象的最小化图标 设置Frame对象的大小和位置
一、图形用户界面概述
框架与面板
1. Frame框架 框架 框架是Window类的直接子类,因而框架是窗口的一种,是顶级窗口。 JFrame组件在Java的顶层窗口中可以独立使用,包含标题、边框、菜单等。 框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按 钮等,从而组成一个功能完善的程序。
第六章 图形用户界面
一、图形用户界面概述 二、Swing常用组件 常用组件 三、事件处理 四、布局设计与边界 五、菜单设计 六、对话框设计 七、文字与图形处理
一、图形用户界面概述
Java语言提供了大量支持 语言提供了大量支持GUI设计的类,如按钮、菜单、 设计的类, 语言提供了大量支持 设计的类 如按钮、菜单、 列表、特性框、对话框等组件类,同时也提供了包含窗口、 列表、特性框、对话框等组件类,同时也提供了包含窗口、 面板等容器类。 的抽象工具集AWT和Swing中包含了很 面板等容器类。Java的抽象工具集 的抽象工具集 和 中包含了很 多类以支持GUI的设计。设计和实现图形用户界面的主要任 的设计。 多类以支持 的设计 务包括下面两个层次: 务包括下面两个层次: (1)创建组成界面的各成分和元素,指定它们的属性和位 创建组成界面的各成分和元素, 创建组成界面的各成分和元素 置关系,根据具体需要布局排列, 置关系,根据具体需要布局排列,以构成图形用户界面的外 观表现。 观表现。 (2)定义图形用户界面的事件和各界面元素所对不同事件 定义图形用户界面的事件和各界面元素所对不同事件 的响应,以实现图形用户界面与用户间的交互功能。 的响应,以实现图形用户界面与用户间的交互功能。
一、图形用户界面概述
基本概念
1. 组件 组件是Java图形用户界面最基本的组成部分,是一个以可 视化的图形方式显示于屏幕上与用户进行交互的对象。Java中 包含许多的基本组件,如按钮、标签、滚动条、列表、单选/复 选框等等。 使用Java语言进行图形用户界面设计过程中,需要用到两 类组件,一类是AWT类的组件,另一类是Swing组件,AWT和 Swing都是Java设计GUI用户界面的基础。
}
一、图形用户界面概述
2. Panel面板 面板
Panel面板类为 面板类为Container类的子类,也是一种容器,可容 类的子类, 面板类为 类的子类 也是一种容器, 纳其它组件(使用 使用add()方法添加 ,但它不是顶层窗口,不能独 方法添加), 纳其它组件 使用 方法添加 但它不是顶层窗口, 立存在,必须被添加到其它容器中,所以一般创建一个Panel面 立存在,必须被添加到其它容器中,所以一般创建一个 面 板对象后,需将其放入Window和Frame中,这样才能看见 板对象后,需将其放入 和 中 Panel面板中的内容。该类中比较重要的方法如下: 面板中的内容。 面板中的内容 该类中比较重要的方法如下:
一、图形用户界面概述
Componnent
Window
Frame JTextField JTextArea JButton JPanel JTable JTree