实验三 图形用户界面设计(汽院含问题详解)
图形图像用户界面设计

实习报告课程名称多媒体实验实习题目图形图像用户界面设计专业通信工程班级通信(2)班学号学生姓名实习成绩指导教师吴娱2011年5月图形图像用户界面设计一、实验目的了解句柄图形的基本概念,掌握图形用户界面的基本设计方法。
二、实验要求上机完成实验题目,独立完成实验报告。
三、实验内容设计简单的图像用户界面。
四、实验步骤1、在MATLAB的命令窗口(Command Window)中运行guide命令:打开GUIDE界面,如下:然后,选择空模板(Blank GUI),点击OK,即可打开GUIDE的设计界面,如下:如下:单下添加菜单项:“打开”、“保存”、“退出”。
如下:文件,所有的程序都是要写在这个M文件里面的。
在编程中,每一个鼠标动作都对应一个Callback函数。
那么菜单项也是如此。
在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。
当点击不同的控件时,其对应的属性都会在这里显示,根据需要可以进行修改。
最主要的属性莫过于Tag属性和String属性。
设置当前的Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。
如下:然后,点击工具栏的保存按钮。
之后,点击工具栏的运行按钮(Run)。
程序运行时的样子,是这样的:文件下面的菜单项和快捷键我们都能看见,但是我们没有写程序,所以就算点也没有什么响应。
还有如果不想设置快捷键,可以在Menu Editor中设置,只要把其选择为Ctrl+none就行了。
这样的话,保存项就没有快捷键了。
可以通过上面的按钮“View”来查看该菜单项的响应函数,也就是Callback函数。
也可以在pjimage.m中看,比如保存的Tag属性是m_file_save,那么它对应的Callback函数的名字就是m_file_save_Callback。
依次类推了。
2、下面来写打开菜单项的函数,要打开一个图片,当然要用打开对话框了。
图形用户界面设计

文字处理类的: 文本框、文本区域
命令类的: 按钮、菜单等
– GUI组件的作用是完成与用户的交互。包括接收
用户的命令、文本或选择输入,向用户显示一段
文本或一个图形等Jav。a的图形用户界面
7
界面元素
4
使用组件通常需要如下的步骤
– 创建某组件类的对象,指定其大小等属性。
– 使用某种布局策略,将该组件对象加入到某个容 器中的某指定位置处。
Java的图形用户界面
24
显示图象
4
显示图象的方法
drawImage(Image 对象, x, y,背景色, ImageObserver); – java.awt.Graphics类中定义了此方法
– 第一个参数是保存图像数据的Image对象。
– 第二、三个参数是图像的左上角坐标,它们决定了 图像在容器中的显示位置。
return super.handleEvent(evt);
}
public static void main(String[] args){
Frame f=new Empty();
f.setSize(300,200);
f.setVisible(true);}来自Java的图形用户界面
12
}
绘制用户自定义成分
Java的图形用户界面
16
绘制图形及其相关方法 4
画圆或椭圆
– drawOval(x,y,w,h) – x,y为绘制圆或椭圆的左上角的坐标,w,h确定了
椭圆的宽度和高度
画实心圆或椭圆
– fillOval(x,y,w,h)
画多边形
– drawPolygon(X坐标数组,Y坐标数组,顶点个数) P.185
python图形用户界面实验报告

python图形用户界面实验报告本实验主要是介绍Python图形用户界面(GUI)的基本概念和使用方法,包括使用Python 中的Tkinter模块创建GUI应用程序的基本结构、常用控件和事件处理方式。
一、实验目的1.掌握Python图形用户界面(GUI)的基本概念和使用方法。
2.学习使用Python中的Tkinter模块创建GUI应用程序。
3.了解在Tkinter中使用控件和事件处理方式。
二、实验内容1.创建基本的GUI应用程序Python的Tkinter模块提供了一系列GUI控件,如Label、Button、Entry、Canvas、Menu等。
下面我们将介绍如何使用Tkinter创建一个基本的GUI应用程序。
代码如下:```from tkinter import *#创建主窗口root = Tk()#设置窗口标题root.title("我的第一个GUI程序")#设置窗口大小(宽x高)root.geometry('400x300')# 创建一个Label控件label = Label(root, text="欢迎来到Python世界!")# 将Label控件添加到主窗口label.pack()#进入消息循环root.mainloop()```上述代码中,我们首先导入了Tkinter模块,然后创建了一个名为root的主窗口。
接下来,我们设置了窗口的标题和大小,并创建了一个Label(标签)控件,文本为“欢迎来到Python 世界!”并将其添加到主窗口。
最后,我们调用root.mainloop()方法以便程序能够执行GUI循环。
2.GUI控件的使用下面介绍一些常用的Tkinter控件的用法。
其中,控件的属性和方法的详细说明可参考Python 官方文档或其它相关资料。
Label(标签)控件Label控件用来显示文本或图像。
如下是一个Label控件的例子:```label = Label(root, text="Hello, world!")label.pack()```Button(按钮)控件Button控件用来响应用户点击事件。
java图形用户界面实验报告

java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。
二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。
2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。
3. 编写Java代码,实现窗口界面的布局和交互功能。
三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。
2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。
3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。
4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。
四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。
该
程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。
五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。
在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。
实验三图形用户界面设计(汽院含答案解析)

实验三图形⽤户界⾯设计(汽院含答案解析)实验三图形⽤户界⾯设计实验⽬的1.掌握Java语⾔中GUI编程的基本⽅法2.掌握Java语⾔中AWT组件的基本⽤法3.掌握Java语⾔中Swing组件的基本⽤法实验导读1.通过图形⽤户界⾯(GUI:Graphics User Interface),⽤户和程序之间可以⽅便地进⾏交互。
AWT(Abstract Windowing Toolkit),中⽂译为抽象窗⼝⼯具包,是Java提供的⽤来建⽴和设置Java的图形⽤户界⾯的基本⼯具。
AWT由Java中的java.awt包提供,⾥⾯包含了许多可⽤来建⽴与平台⽆关的图形⽤户界⾯(GUI)的类,这些类⼜被称为组件(components)。
Swing是⼀个⽤于开发Java应⽤程序⽤户界⾯的开发⼯具包。
它以抽象窗⼝⼯具包(AWT)为基础使跨平台应⽤程序可以使⽤任何可插拔的外观风格。
Swing开发⼈员只⽤很少的代码就可以利⽤Swing丰富、灵活的功能和模块化组件来创建优雅的⽤户界⾯。
JDK写程序所有功能都是靠虚拟机去操作本地操作系统。
⽐如window下,就是JDK ⽤windows API实现功能。
⽽awt包中很多组件是组件⾃⾝去调⽤本地操作系统代码swing包中的组件采⽤的是调⽤本地虚拟机⽅法,由虚拟机再调⽤本地操作系统代码。
意思就是中间多了⼀层,这样就加强了swing包的移植性,与本地关系不那强了。
图3.1 AWT常⽤组件继承关系图Container为容器,是⼀个特殊的组件,该组件中可以通过add⽅法添加其他组件进来。
2.布局,容器中的组件的排放⽅式。
常见的布局管理器:FlowLayout(流式布局管理器):从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器):东,南,西,北,中。
Frame默认的布局管理器。
GridLayout(⽹格布局管理器):规则的矩阵CardLayout(卡⽚布局管理器):选项卡GridBagLayout(⽹格包布局管理器):⾮规则的矩阵3.类JFrame是java.awt.Frame 的扩展版本,该版本添加了对JFC/Swing 组件架构的⽀持,常⽤⽅法如下:1)JFrame() 该构造⽅法可以创建⼀个⽆标题的窗⼝,窗⼝的默认布局为BorderLayout布局。
图形用户界面设计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 ) 设置框架的背景颜色
实验报告3 用户界面设计

1.运行结果:
运行源代码:
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox1.Clear();
if(radioButton1.Checked)
if(radioButton5.Checked)
textBox1.Text+=radioButton5.Text;
if(radioButton6.Checked)
textBox1.Text+=radioButton6.Text;
if(radioButton7.Checked)
textBox1.Text +=radioButton7.Text;
在这次实验中,我了解到了如何把一些工具放在一个组件里,如何做到单选、多选;如何把所选的东西显示出来;这些功能的实现都借助了一定的控件,就像单选按钮、多选按钮、文本框等。但在实验过程中还遇到了一些问题,就是在登录时,密码是以明文显示出来的,这是就需要将这个文本框的PasswardChar改为“*”,这时显示出的密码就为密文“***”了。还有就是实验中的第二个题没有实现。
专业:________________班级:___________姓名:________________
一、实验目的:
掌握常用控件的属性、事件和方法,初步掌握利用常用控件创建基于图形用户界面应用程序的技术
二、实验内容:
1.设计如图所示的应用程序。当用户选定了基本配置并单击“确定”按钮后,在右边的列表框中显示所选择的信息。
图形用户界面GUI测试实验报告1-2

if (s1 != null && s1.Length > 0 && s2 != null && s2.Length > 0 && s3 != null && s3.Length > 0) { try { int x = Convert.ToInt32(s1); int y = Convert.ToInt32(s2); int z = Convert.ToInt32(s3);
else resulelab.Text = "普通三角形";
} else
resulelab.Text = "三角形三边只能是正数"; } catch {
resulelab.Text = "请输入整数!"; }
}
} private void button2_Click(object sender, EventArgs e) {
实验室 电信机房 实验时间
2010 年 5 月 31 日
实验类别
操作
同组人数
1
成绩
指导教师签字:
一、实验目的:
1、掌握线形脚本的概念; 2、掌握 Winrunner 如何 GUI 对象; 3、初步掌握 Winrunner 的使用。
二、实验学时:2 学时
三、实验任务 对于三角问题,设计相应的 GUI 程序,用文本框接受输入和输出,输入为三角形的三条边,
# 判断三角形 set_window ("判断三角形", 1); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b_2", 31, 14, LEFT); obj_drop ("A:", 32, 11); obj_type ("WindowsForms10.EDIT.app.0.b7ab7b_2","23"); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b", 23, 11, LEFT); win_drop ("判断三角形", 125, 111); obj_type ("WindowsForms10.EDIT.app.0.b7ab7b","23"); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b_1", 26, 13, LEFT); win_drop ("判断三角形", 130, 151); obj_type ("WindowsForms10.EDIT.app.0.b7ab7b_1","23"); obj_mouse_click ("确定", 33, 3, LEFT); win_move ("判断三角形", 676, 205); win_move ("判断三角形", 795, 216); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b_2", 32, 10, LEFT); obj_drop ("A:", 26, 10); obj_type ("WindowsForms10.EDIT.app.0.b7ab7b_2","12"); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b", 22, 10, LEFT); win_drop ("判断三角形", 138, 113); obj_type ("WindowsForms10.EDIT.app.0.b7ab7b","22"); obj_drag ("WindowsForms10.EDIT.app.0.b7ab7b_1", 30, 9, LEFT);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三图形用户界面设计实验目的1.掌握Java语言中GUI编程的基本方法2.掌握Java语言中AWT组件的基本用法3.掌握Java语言中Swing组件的基本用法实验导读1.通过图形用户界面(GUI:Graphics User Interface),用户和程序之间可以方便地进行交互。
AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
JDK写程序所有功能都是靠虚拟机去操作本地操作系统。
比如window下,就是JDK用windows API实现功能。
而awt包中很多组件是组件自身去调用本地操作系统代码swing包中的组件采用的是调用本地虚拟机方法,由虚拟机再调用本地操作系统代码。
意思就是中间多了一层,这样就加强了swing包的移植性,与本地关系不那强了。
图3.1 AWT常用组件继承关系图Container为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。
2.布局,容器中的组件的排放方式。
常见的布局管理器:FlowLayout(流式布局管理器):从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器):东,南,西,北,中。
Frame默认的布局管理器。
GridLayout(网格布局管理器):规则的矩阵CardLayout(卡片布局管理器):选项卡GridBagLayout(网格包布局管理器):非规则的矩阵3.类JFrame是java.awt.Frame 的扩展版本,该版本添加了对JFC/Swing 组件架构的支持,常用方法如下:1)JFrame() 该构造方法可以创建一个无标题的窗口,窗口的默认布局为BorderLayout布局。
2)JFrame(String s) 该构造方法可以创建一个标题为s的窗口,窗口的默认布局为BorderLayout布局。
3)public void setBounds(int a,int b,int width,int height) 窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height。
4)public void setSize(int width,int height) 设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。
5)public void setVisible(boolean b) 设置窗口是可见还是不可见,窗口默认是不可见的。
6)public void setResizable(boolean b) 设置窗口是否可调整大小,窗口默认是可调整大小的。
7)public void setDefaultCloseOperation(int operation) 设置用户在此窗体上发起"close" 时默认执行的操作。
8)public void setLocationRelativeTo(Component c) 设置窗口相对于指定组件的位置。
如果组件当前未显示,或者c 为null,则此窗口将置于屏幕的中央。
实验容1.图形用户界面设计程序(ArtFont.java)要求:设计一个文字字体设置窗体,在该窗体中可以设置要显示文字的字体容,包括字体名称、字体大小、粗体和斜体等字体风格。
并模拟在不同操作系统下的显示效果。
程序的最终显示效果如下:提示:整个窗体继承于JFrame,采用BorderLayout布局。
在窗体中添加三个JPanel:northPanel、centerPanel和southPanel,分别位于窗体的北部、中部和南部,然后分别在各个面板中添加其它组件,并逐步完善程序功能。
请按以下步骤完成程序设计:1)新建ArtFont类,该类用于显示主界面。
其主要代码如下:public class ArtFont extends JFrame {JComboBox fontType;//字体样式下拉框,JComboBox fontSize;//字体大小下拉框JComboBox windowStyle;//窗体样式下拉框JCheckBox boldBx;// 粗体按钮JCheckBox italicBx;// 斜体按钮JButton colorBtn;// 颜色按钮;String[] fontNames;// 字体名称;String[] fontSizes;// 字体大小;JLabel label;// 输入提示标签;JTextField inputText;// 文字输入框;JTextArea txtArea;// 文字显示区;JPanel northPanel;// 字体设置;JPanel centerPanel;// 显示效果区JPanel southPanel;//样式设置Font font;int boldStyle, italicStyle, underlineStyle;int fontSizeStyle;String fontNameStyle;Color colorStyle= Color.black;// 设置字体的默认颜色为黑色;String[] style= { "默认显示效果", "Windows显示效果", "Unix 显示效果" };public ArtFont() {super("字体设置");// 设置默认字体boldStyle = 0;italicStyle = 0;underlineStyle = 0;fontSizeStyle = 10;fontNameStyle = "宋体";font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);northPanel = getNorthPanel();centerPanel = getCenterPanel();southPanel = getSouthPanel();// 设置容器;Container container = getContentPane();container.setLayout(new BorderLayout());【补充代码】//将northPanel添加到窗体的北部【补充代码】//将centerPanel添加到窗体的北部【补充代码】//将southPanel添加到窗体的北部setSize(500, 300);【补充代码】//将窗体位于屏幕的中央setVisible(true); }private JPanel getNorthPanel() {JPanel panel = new JPanel();return panel;}private JPanel getCenterPanel() {JPanel panel = new JPanel();return panel;}private JPanel getSouthPanel() {JPanel panel = new JPanel();return panel;}public static void main(String args[]) {ArtFont artFont = new ArtFont();artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );}}2)根据ArtFont类代码和程序界面图设计北部面板northPanel:private JPanel getNorthPanel() {JPanel panel = new JPanel();【补充代码…】return panel;}3)根据ArtFont类代码和程序界面图设计中部面板centerPanel:private JPanel getCenterPanel() {JPanel panel = new JPanel();【补充代码…】return panel;}4)根据ArtFont类代码和程序界面图设计南部面板southPanel:private JPanel getSouthPanel() {JPanel panel = new JPanel();//获得系统默认字体GraphicsEnvironment ge =GraphicsEnvironment.getLocalGraphicsEnvironment();fontNames = ge.getAvailableFontFamilyNames();fontType = new JComboBox(fontNames);//设置字体大小fontSizes = new String[63];for (int i = 0; i < fontSizes.length; i++) { fontSizes[i] = Integer.toString(i+10);}【补充代码…】return panel;}5)调试、编译和运行程序,并显示正确界面。
ArtFont artFont = new ArtFont();artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}2.日历应用程序设计编写一个应用程序,设计一个窗体,该窗体为BorderLayout布局。
窗体的中心添加一个Panel容器:Panel容器的布局是7行7列的GridLayout布局,Panel容器中放置49个标签,用来显示日历。
窗口的北面添加一个Panel容器,其布局是FlowLayout布局,Panel容器中放置两个按钮:nextMonth和previousMonth。
窗口的南面添加一个Panel容器,其布局是FlowLayout,Panel容器中放置一个标签用来显示一些信息。
请按以下步骤完成程序设计:1)编写CalendarBean类,实现日期类:public class CalendarBean {String day[];int year = 2013, month = 0;public void setYear(int year) {this.year = year;}public int getYear() {return year;}public void setMonth(int month) {this.month = month;}public int getMonth() {return month;}//返回某年某月1号开始的日期数组public String[] getCalendar() {String a[] = new String[42];Calendar 日历 = Calendar.getInstance();//注意:1月份是从0开始,所以要减1日历.set(year, month - 1, 1);int星期几 = 日历.get(Calendar.DAY_OF_WEEK) - 1;int day = 0;if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {day = 31;}if (month == 4 || month == 6 || month == 9 || month == 11) {day = 30;}if (month == 2) {if(((year% 4 == 0) && (year% 100 != 0)) || (year% 400 == 0)) {day = 29;} else {day = 28;}}for (int i = 星期几, n = 1; i < 星期几 + day; i++) { a[i] = String.valueOf(n);n++;}return a;}}2)补充代码,完成日历窗体界面类设计:public class CalendarFrame extends Frame {Label labelDay[] = new Label[42];Label labelYear;Button titleName[] = new Button[7];Button nextMonth, previousMonth;Label showMessage;TextField inputYear;CalendarBean calendar;String name[] = { "日", "一", "二", "三", "四", "五", "六" };int year = 2013, month = 1;String days[];public CalendarFrame() {calendar = new CalendarBean();calendar.setYear(year);calendar.setMonth(month);days = calendar.getCalendar();ScrollPane scrollPane = new ScrollPane();scrollPane.add(getCenterPanel());【补充代码】// 窗口添加scrollPane在中心区域【补充代码】// 窗口添加pNorth 在北面区域【补充代码】// 窗口添加pSouth 在南区域。