嵌入式用户图形接口uCGUI的简单分析.

嵌入式用户图形接口uCGUI的简单分析.
嵌入式用户图形接口uCGUI的简单分析.

? 嵌入式用户图形接口uC/GUI的简单分析

4.1 uC/GUI简介

uC/GUI是Micrium 公司开发的通用的嵌入式用户图形界面软件。它给任何使用图形LCD 的应用程序提供独立于处理器和LCD 控制器之外的有效的图形用户接口。可以应用于单一任务环境,也可以应用于多任务环境中。uC/GUI能够应用于任何LCD 控制器和CPU 的任何尺寸的物理显示或者模拟显示中。 uC/GUI的特点如下:

o 适用于任何8位/16位/32位CPU ,可允许于支持ANSI C的任何编译器

o 适用于任何控制器驱动任何LCD (单色,灰度,或者彩色)

o 通过配置宏,可支持任何接口

o 可配置显示尺寸

o 可在LCD 的任何一点上显示字符和画位图

o 对于显示尺寸和速度提供优化进程,编译时间依赖于采用的优化进程

o 支持虚拟显示,虚拟显示的尺寸比实际显示大。

4.2 uC/GUI文件组织

uC/GUI目录下的文件有配置文件目录Config ,GUI 库函数目录,以及为GUI 编写的应用程序目录。下面分别简要介绍相应目录下的函数,更为详细的文件介绍请参考我的uC/GUI移植的源代码。 o uC/GUI\Config\目录:

GUICONF.h :配置GUI 移植到不同操作系统的选项。在本论文中配置移植到uC/OSII中,允许多任务调用uC/GUI函数。

GUITouchConf.h :配置触摸屏的选项以及编写触摸屏的驱动。本文移植

uC/GUI所使用的LCD 屏不支持触摸屏,所以此文件为空。

LCD_Init.C: LCD 控制器的初始化文件。

LCD_Conf.h: LCD 显示屏的选项文件,包括bpp ,调试板模式,水平、竖直方向的分辨率等等。 o uC/GUI\GUI\AntiAlias\目录:

这个目录中包含9个文件,处理显示的边缘模糊效果,也就是抗锯齿和优化LCD 锯齿。液晶屏上画斜线往往都有锯齿,所以通过优化算法进行美化。

o uC/GUI\GUI\ConvertColor\目录:

这个目录中包含14个.C 文件,涉及调色板模式。uC\GUI的调色板模式支持111模式,222模式,223,323,332,444,555,565,8666等相关模式。我在论文中使用的LCD 屏,为单色16级灰度屏,因而不涉及到这些模式。但为了保持UC\GUI文件的完整性,该目录以及目录下14个文件,仍然保存在移植文件中。

o uC/GUI\GUI\ConvertMono\目录:

此目录下的文件描述单色显示的不同模式,包含4个文件。

o uC/GUI\GUI\Core

此目录下包含129个文件,是uC/GUI的核心部分。包括GUI 头文件,GUI 显示各种文本,二进制,十进制,十六进制,字符型文本,字符串,在不同的位置显示二进制,十进制,十六进制,字符型文本,字符串等;GUI 设置各种字体;GUI 的2-D 图形库,GUI 绘图函数,在各种位置绘各种点,线,位图,多边形,长方形,圆等等;GUI 获取函数,获取当前点,线,位图,多边形,长方形,圆,当前字体,当前二进制,十进制,十六进制,字符型文本,字符串等函数;设置GUI 画笔函数;GUI 支持的鼠标函数;GUI 支持的键盘函数,GUI 支持的触摸屏函数;GUI 设置LCD 函数等等。这些函数,在uC/GUI

系统中都是必须的函数。正是这些函数的组合,使得uC/GUI具有复杂而且完备的图形用户接口。而且,这些函数的组合,使得uC/GUI可以单独的使用,也可以通过配置文件,移植到各种操作系统中使用。 o uC/GUI\GUI\Font

此目录下包含的是uC/GUI支持的字体。

o uC/GUI\GUI\LCDDriver

LCD API目录。该目录下包含很多已经完备的LCD 控制器的驱动程序以及API 函数。

o uC/GUI\GUI\MemDev

MemDev 目录。

MemDev 主要用于防止在画交迭图时产生的抖动。uC/GUI函数绘图不使用MemDev 时,画图操作直接写到终端上显示,交迭绘图执行时刷新屏幕,多次刷新时就会出现抖动。例如,要在背景色中画图,且在前景中写一些透明的文字,实现的步骤就是先画图,然后写文字,那么结果就会出现文字的抖动。如果在程序中使用MemDev ,则所有的执行操作都在MemDev 中执行,当所有的操作都执行完毕之后,最后的结果才会送到屏幕上显示,因而可以避免多次刷新,从而避免抖动。

此目录下包含这MemDev 的所有函数,包括创建MemDev 函数,激活MemDev ,执行画图操作,显示到终端,删除MemDev 函数等等。

o uC/GUI\GUI\Touch

触摸屏驱动函数所在目录。uC/GUI只支持模拟的触摸屏。因而此目录下只包含模拟触摸屏。 o uC/GUI\GUI\Widget

此目录包含窗口控件函数,总共46个函数。UC/GUI中窗口控件机制时

uC/GUI的实现难点,也是应用难点。运用窗口管理和回调机制,运用窗口控件函

数,可以任意在LCD 屏幕上实现类似于windows 的界面,这样完备的功能在工业自动化控制和触摸屏应用上有着深远而积极的意义。

此目录下的函数主要包括uC/GUI的窗口控件,如按钮BUTTON ,校验窗CHECKBOX ,编辑区EDIT ,窗口框FRAMEWIN ,列表LISTBOX ,进度条PROGBAR ,音频按钮RADIOBUTTON, 滚动条SCROLLERBAR ,改变值的灰度条SLIDER ,以及文本框TEXT 相关的各种函数。

o uC/GUI\GUI\WM

此目录包括窗口管理函数,总共52个函数。UC/GUI中,窗口管理中的消息传递机制和回调机制,也是uC/GUI的实现难点和应用难点。4.3节中将详细介绍这两点。

此目录下的函数主要包括设置、返回、建立背景窗口、父窗口、各种子窗口以及相应的尺寸、窗口句柄,起点x ,y 坐标,窗口宽度,高度,位置等等,还包括改变窗口的大小,以及最关键的窗口的回调函数,窗口重绘函数等等。

4.3 uC/GUI的窗口管理

4.3.1简介

uC/GUI的窗口管理是一个单独的软件,不是uC/GUI的基本组成部分。详细代码见\uCGUI\GUI\WM。当使用uC/GUI窗口管理时,任何能显示在显示终端上的内容都包含在一个窗口里面,这个窗口是LCD 屏幕上的一个给用户画图或者显示目标的区域。窗口可以是任何尺寸的,可以一次在屏幕上显示多个窗口,也可以在其它窗口当中或之前显示窗口。

窗口管理的几个名词:

o 活动窗口:

当前正在用来画图或是显示操作的窗口。

o 回调函数

回调函数是由用户定义的,当特定事件发生时,指示图形系统调用特定函数的函数。通常当窗口的内容

发生改变时,它们用来自动重绘窗口。例如,窗口内显示一幅位图,当窗口移动时,位图并不会自动移动,此时,就需要调用回调函数对窗口进行重绘,即,从观众的角度来看,移动窗口和窗口内容。 o 子/父窗口

子窗口是相对于父窗口定义的窗口。无论何时,只要父窗口移动,则子窗口们都要相应移动。子窗口被父窗口完全包含。拥有同一个父窗口的子窗口们互相间称为兄弟。

o 客户区

窗口的客户区就是窗口的可用区。如果窗口包含方框或标题栏,则客户区就是方框或标题栏的内部区域。 o 句柄

当一个新的窗口被创建时,WM 分配一个唯一的标识符,称为句柄。句柄用在后续对该窗口操作的所有函数中,而且可以利用该句柄唯一标识该窗口。

o 有效窗口/无效窗口

有效窗口是一个已经完全更新,不需要重绘的窗口。不管是完全重绘还是局部重绘。当窗口内容发生改变时,WM 则标识窗口无效。下一次重绘之后(调用回调函数),窗口又变为有效。

4.3.2回调机制

uC/GUI提供给窗口和窗口控件的回调机制的背后,是一个事件驱动标志。在大多数的窗口系统中,流控不仅仅时从用户程序到图形系统,而且还要能够从用户程序到图形系统,并且能够通过用户程序提供的回调函数,返回到用户程序。这个

机制,就称为回调机制。在uC/GUI中,回到机制用来在窗口管理中出控制窗口的重绘操作,这使得窗口管理的有效性成为可能。

4.3.3 回调函数的使用

使用回调函数建立一个窗口时,必须有一个回调函数。所用的回调函数必须有如下原型:

void callback (WM_MESSAGE *pMsg。其中pMsg 为指向消息的指针。

回调函数执行的功能依赖于所接收到的消息。以上原型后一般跟着switch 表达式,表达式定义不同的case 表达式下不同的信息对应的不同行为,至少要有一个重绘函数:WM_PAINT(。如程序清单4.1, 建立一个自动更新窗口的回调函数

程序清单 4.1 建立一个自动更新窗口的回调函数

void WinHandler (WM_MESSAGE * pMsg

{

switch (pMsg->MsgId

{

case: WM_PAINT GUI_SetBkColor(0xff00;

GUI_Clear(;

GUI_DispStringAt(“hello world”,0,0;

Break;

}

}

使用回调函数,更为详细的示例如程序清单4.2所示:程序清单4.2 回调函数

#include "GUI.H"

/* 背景窗的回调函数 */

static void cbBackgroundWin(WM_MESSAGE* pMsg {

switch (pMsg->MsgId

{

case WM_PAINT: GUI_Clear(;

default: WM_DefaultProc(pMsg;

}

}

/* 前景窗的回调函数 */

static void cbForegroundWin(WM_MESSAGE* pMsg {

switch (pMsg->MsgId

{

case WM_PAINT: GUI_SetBkColor(GUI_GREEN;

GUI_Clear(;

GUI_DispString("Foreground window";

default: WM_DefaultProc(pMsg;

}

}

/* 回调机制 */

static void DemoRedraw(void

{

GUI_HWIN hWnd;

while(1

{

/*创建一个前景窗 */

hWnd = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, cbForegroundWin, 0;

/*显示前景窗*/

GUI_Delay(1000;

/* 删除前景窗 */

WM_DeleteWindow(hWnd;

GUI_DispStringAt("Background of window has not been redrawn", 10, 10;

/* 等待,显示并不重绘 */

GUI_Delay(1000;

GUI_Clear(;

/* 设置背景窗的回调功能 */

WM_SetCallback(WM_HBKWIN, cbBackgroundWin;

/*创建一个前景窗 */

hWnd = WM_CreateWindow(10, 10, 100, 100,WM_CF_SHOW, cbForegroundWin, 0;

/* 显示前景窗*/

GUI_Delay(1000;

/*删除前景窗 */

WM_DeleteWindow(hWnd;

/* 等待,显示将重绘*/

GUI_Delay(1000;

/* 删除回调函数 */

WM_SetCallback(WM_HBKWIN, 0;

}

}

void main(void

{

GUI_Init(;

DemoRedraw(;

}

4.3.4 消息传递机制

程序清单4.2中,回调函数执行的功能依赖于所接收到的消息。Switch 语句中根据消息的类型,分别执行不同的功能。

WM_MESSAGE的成员如下:

MsgId :消息类型

HWin: 目的窗口

HWinSrc: 源窗口

Data.p : 数据指针

Data.v: 数据值

其中MsgId 的类型如下:

WM_PAINT: 窗口重绘

WM_CREATE: 窗口一建立就发送

WM_DELETE: 窗口一删除就发送

WM_SIZE : 窗口尺寸发生改变就发送

WM_MOVE : 窗口移动就发送

WM_SHOW : 接收到show 命令就发送

WM_HIDE : 接收到hide 命令就发送

WM_TOUCH: 触摸屏信息

应用程序还可以为自己定义额外的消息。为保证它们不用到uC/GUI的消息ID ,用户定义的消息从WM_USER后面开始,如:

#define MY_MESSAGE_AAA WM_USER +0

#define MY_MESSAGE_BBB WM_USER +1

java实验报告实验六Java图形用户界面

信息工程学院 Java程序设计实习报告 JAVA图形用户界面 实验六Java图形用户界面 1.实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握Java事件处理机制。 2.实验内容 实验题 1 编写一个模拟计算器的程序,使用面板与网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式与结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。

加法: 主要代码: private void initComponents() { jButton1 = new javax、swing、JButton(); jButton2 = new javax、swing、JButton(); jButton3 = new javax、swing、JButton(); jButton4 = new javax、swing、JButton(); jButton5 = new javax、swing、JButton(); jButton6 = new javax、swing、JButton(); jButton7 = new javax、swing、JButton(); jButton8 = new javax、swing、JButton(); jButton9 = new javax、swing、JButton(); jButton10 = new javax、swing、JButton(); jButton11 = new javax、swing、JButton(); jButton12 = new javax、swing、JButton(); jButton13 = new javax、swing、JButton(); jButton14 = new javax、swing、JButton(); jButton15 = new javax、swing、JButton(); jTextField1 = new javax、swing、JTextField(); setStub(null); jButton1、setText("3"); jButton1、addActionListener(new java、awt、event、

实验一:图形用户界面设计

实验一图形用户界面设计 一实验目的和要求 1)熟悉图形用户界面的设计原则 遵循用户友好原则、一致性原则、帮助和提示等原则设计用户界面。 2)利用一种设计工具完成图形化的用户界面设计 二实验内容与步骤 (一)实验内容 利用常用的设计工具(UI界面设计工具GUI Design Studio)完成一个通用图形用户界面设计,要遵循界面设计的一般原则(一致性、快捷方式、提供错误处理),注意颜色的使用,学会图标、按钮、屏幕布局、菜单和对话框的设计。 软件的界面如同人的脸一样,软件界面的好坏决定了用户对软件的第一印象。设计好的界面能够引导用户自己完成相应的操作,起到引导作用。设计合理的界面能给用户带来轻松愉悦的感受。一些专家指出:对于用户,人机界面就是系统本身。这充分说明了软件界面设计的重要性。请完成各自的系统用户界面的设计。 (二)实验步骤 1.设计多个对话框,完成填表输入界面的设计,合理使用图标、按钮、颜色; 2.设计不同形式的菜单,完成对不同对话框的调用; 3.提供简单的错误处理、联机帮助。 GUI Design Studio主界面

三界面示例1、登录界面 2、主界面

3、聊天界面 4、QQ空间界面

四实验总结 1.界面要具有一致性、常用操作要有快捷方式、提供简单的错误处理、对操作人员的重要操作要有信息反馈、操作可逆、设计良好的联机帮助、合理划分并高效地使用显示屏、保证信息显示方式与数据输入方式的协调一致。 2.颜色是一种有效的强化手段,同时具有美学价值。使用颜色时应注意如下几点:限制同时显示的颜色数;画面中活动对象的颜色应鲜明,而非活动对象应暗淡;尽量避免不相容的颜色放在一起,如黄与蓝,红与绿等,除非作对比时用;若用颜色表示某种信息或对象属性,要使用户理解这种表示,并尽量采用通用的表示规则。 3.图标是可视地表示实体信息的简洁、抽象的符号。图标设计是方寸艺术,需要在很小的范围内表现出图标的内涵。设计图标时应该着重考虑视觉冲击力,要使用简单的颜色,利用眼镜对色彩和网点的空间混合效果,做出精彩图标。 1)设计按钮应该具有交互性,应该有3到6种状态效果(点击时的状态、鼠标放在上面但未点击的状态、点击前鼠标未放在上面时的状态、点击后鼠标未放在上面时的状态、不能点击时的状态、独立自动变化的状态),按钮应具备简洁的图示效果,应能够让使用者产生功能上的关联反应。属于一个群组的按钮应该风格统一,功能差异大的按钮应该有所区别。 2)设计屏幕布局(Layout)时应该使各功能区重点突出,应遵循如下几条原则:平衡原则、预期原则、经济原则、顺序原则、规则化。 3)菜单在图形界面的应用程序中使用得非常普遍,是软件界面设计的一个重要组成方面,描述了一个软件的大致功能和风格。菜单中的选项在功能上与按钮相当,一般具有下列一种或几种类型的选项:命令项、菜单项和窗口项。菜单的结构一般有单一菜单、线状序列菜单、树状结构菜单、网状结构菜单等,其中树状结构菜单是最常见的结构。 设计菜单界面时应注意一般性原则:功能组织菜单,合理分类,并力求简短,前后一致;合理组织菜单界面的结构与层次;按一定的规则对菜单项进行排序;菜单选项的标题要力求文字简短、含义明确,并且最好以关键词开始;常用选项要设置快捷键;充分利用菜单选项的使能与禁止、可见与隐藏属性;使用弹出式菜单。 4)在处理大量相关数据的场合下,需要输入一系列的数据,这时填表输入界面是最理想的数据输入界面。在设计填表输入界面时应遵循的原则:一致性;有含义的表格标题;使用易于理解的指导性说明文字;栏目按逻辑分组排序;表格的组织结构和用户任务相一致;光标移动方便;出错提示;提供帮助;表格显示应美观、清楚,避免过分拥挤。

实验三图形用户界面设计(汽院含答案)

实验三图形用户界面设计 实验目的 1.掌握Java语言中GUI编程的基本方法 2.掌握Java语言中AWT组件的基本用法 3.掌握Java语言中Swing组件的基本用法 实验导读 1.通过图形用户界面(GUI:Graphics User Interface),用户和程序之间可以方便地进行 交互。 AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。 Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 JDK写程序所有功能都是靠虚拟机去操作本地操作系统。比如window下,就是JDK 用windows API实现功能。而awt包中很多组件是组件自身去调用本地操作系统代码swing包中的组件采用的是调用本地虚拟机方法,由虚拟机再调用本地操作系统代码。意思就是中间多了一层,这样就加强了swing包的移植性,与本地关系不那强了。 图AWT常用组件继承关系图 Container为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。 2.布局,容器中的组件的排放方式。常见的布局管理器: FlowLayout(流式布局管理器):从左到右的顺序排列。Panel默认的布局管理器。 BorderLayout(边界布局管理器):东,南,西,北,中。Frame默认的布局管理器。 GridLayout(网格布局管理器):规则的矩阵

Java图形用户接口

第九章Java图形用户接口 对一个优秀的应用程序来说,良好的图形用户接口是必不可少的。缺少良好的图形用户接口,将会给用户理解和使用应用程序带来很多不便。很难想象用户为了学会使用一个应用程序,去记一大堆命令。Java提供了生成一个良好的图形用户接口所需要的一切基本元件:面板(Panel Button?abe l?画板(Canvases?滚动条(Scrollbar?列表框(List?文本域(TextF ield?文本区(TextArea? 9.1 面板 面板提?了建立应用程序的空间。你可以把图形元件(包括其他面板?放在一个面板上。Applet类提?了一个基本的面板。 9.1.1布局管理 Java提?了几种布局:顺序布局(FlowLayout?边界布局(BorderLayout?和网格布局(GridLayout? 9.1.1.1顺序布局 顺序布局(FlowLayout?是最基本的一种布局,面板的缺省布局就是顺序布局。顺序布局指的是把图形元件一个接一个地?平地放在面板上。下面是一个顺序布局的例子: import java.awt.*; import java.applet.Applet; public class myButtons extends Applet{ Button button1,button2,button3; public void init(){ button1=new Button("确定"); button2=new Button("打开"); button3=new Button("关闭"); add(button1); add(button2); add(button3); } } 该程序生成的布局如下: 图9.1

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

图形用户界面的设计课案

人机交互基础教程 实验报告 实验题目:图形用户界面的设计 专业计算机科学与技术 学生姓名 班级学号 教师 指导单位计算机软件学院 日期

教师 评语教师签名: 年月日 成绩评定 备注

一、实验目的 (1)熟悉图形用户界面的设计原则 (2)利用一种设计工具完成图形化的用户界面设计 二、预备知识 图形用户界面又称为WIMP界面,由窗口(windows)、图标(icons)、菜单(menu)、指点设备(pointing device)四位一体,形成桌面(desktop) ,如图所示。 WIMP界面 用 户 手 眼 击键/指点 窗口、图标 菜单、文本 应用例程 图形用户界面是当前用户界面的主流,广泛应用于各档台式微机和图形工作站。图形用户界面的共同特点是以窗口管理系统为核心,使用键盘和鼠标器作为输入设备。窗口管理系统除了基于可重叠多窗口管理技术外,广泛采用的另一核心技术是事件驱动(event-driven)技术。 WIMP界面可看作是第二代人机界面,是基于图形方式的人机界面。在WIMP界面中,人被称为用户,人机通过对话进行工作。用户只能使用手这一种交互通道输入信息,通过视觉通道获取信息。在WIMP界面中,界面的输出可以为静态或动态的二维图形或图像等信息。

这种方式能同时输出不同种类的信息,用户也可以在几个工作环境中切换而不丢失几个工作之间的联系,通过菜单可以执行控制型和对话型任务。由于引入了图标、按钮和滚动条技术,大大减少键盘输入,提高了交互效率。基于鼠标和图形用户界面的交互技术极大地推动了计算机技术的普及。 (1)图形用户界面的三个重要思想 1)桌面隐喻(desktop metaphor) 指在用户界面中用人们熟悉的桌面上的图例清楚地表示计算机可以处理的能力。隐喻的表现方法:静态图标、动画、视频2)所见即所得(What You See Is What You Get,WYSIWYG) 显示的用户交互行为与应用程序最终产生的结果是一致的。 3)直接操纵(direct manipulation) 直接操纵是指可以把操作的对象、属性、关系显式地表示出来,用光笔、鼠标、触摸屏或数据手套等指点设备直接从屏幕上获取形象化命令与数据的过程。直接操纵的对象是命令、数据或是对数据的某种操作。 (2)设计图形用户界面的原则 1) 一般性原则:界面要具有一致性、常用操作要有快捷方式、提供简单的错误处理、对操作人员的重要操作要有信息反馈、操作可逆、设计良好的联机帮助、合理划分并高效地使用显示屏、保证信息显示方式与数据输入方式的协调一致 2) 颜色的使用:颜色是一种有效的强化手段,同时具有美学价

Java基础实验报告-图形用户界面设计

南京工程学院 实验报告 课程名称 JAVA基础 实验项目名称图形用户界面设计 实验学生班级 实验学生姓名 学号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字年月日

一、实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。 2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。 3.熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

实验八基于图形用户界面的JDBC程序开发

实验4基于图形用户界面的JDBC程序开发 (2) 淮海工学院计算机科学系 实验报告书 课程名:__ Java___________ 题目:_基于图形用户界面的JDBC程序开发 班级:__ ___________ 学号:__ __________ 姓名:__ __________ _ 一、实验目的 熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行

图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。 理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以数据库应用为核心的软件系统,并在设计中灵活运用之前所学的Java语言面向对象的编程技术。 二、实验环境 操作系统:windows 2000 或 Window XP 集成开发环境:JDK1.6及以上版本 三、实验学时 2学时,必做实验。 四、实验内容 (1)进一步熟悉JavaGUI标准组件和布局管理器、正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java 的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;实践程 序调试方法、纠错能力及编程规范性等;理解JDBC的数据库访问编程原理, 正确利用JDBC技术编写以各种数据库应用; (2)按以下各题目具体要求调试或编写相关算法程序 五、实验步骤与结果 1 请按照以下功能要求编写并调试相关程序 (1) 请定义一个抽象的“科学图书”类,其中包含1个公共的抽象方法:图书介绍;1个属性为:图书类别 (字符串类型); (2) 定义一个“计算机图书”子类(继承于“科学图书”类),其中包括2个域:出版社、定价;2个构造方法:一个为无参构造方法,在该无参构造方法中将“图书类别”设置为“计算机图书”,一个带2个参数(出版社、定价);不少于2个成员方法:分别用来查看出版社、修改定价,图书介绍文字可自编,并编写输出计算机图书全部信息的toString()方法。 (3) 编写一个图形用户界面,用来测试能否正确创建计算机图书类的对象、能否正常调用其方法,参考界面如下。必须实现的基本功能是: 1)单击图中的“新增计算机图书”按钮,则可显示出新增的计算机图书信息(显示信息的控件不限,用文本域、列表框、表格均可),要求添加的计算机图书不少于2本,如下图所示:

图形用户界面设计

09次上机图形用户界面设计 1、(1)给程序添加注释,并执行。 建立数制转换对话框。 在左边输入一个十进制整数和2~16之间的数,单击“转换”按钮能在右边得到十进制数所对应的2~16进制字符串,单击“退出”按钮退出对话框。 hf=figure('Color',[0,1,1],'Position',[100,200,400,200],... 'Name','数制转换','NumberTitle','off','MenuBar','none'); uicontrol(hf,'Style','Text', 'Units','normalized',... 'Position',[0.05,0.8,0.45,0.1],'Horizontal','center',... 'String','输入框','Back',[0,1,1]); uicontrol(hf,'Style','Text','Position',[0.5,0.8,0.45,0.1],... 'Units','normalized','Horizontal','center',... 'String','输出框','Back',[0,1,1]); uicontrol(hf,'Style','Frame','Position',[0.04,0.33,0.45,0.45],... 'Units','normalized','Back',[1,1,0]); uicontrol(hf,'Style','Text','Position',[0.05,0.6,0.25,0.1],... 'Units','normalized','Horizontal','center',... 'String','十进制数','Back',[1,1,0]); uicontrol(hf,'Style','Text','Position',[0.05,0.4,0.25,0.1],... 'Units','normalized','Horizontal','center',... 'String','2~16进制','Back',[1,1,0]); he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.6,0.2,0.1],... 'Units','normalized','Back',[0,1,0]); he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.4,0.2,0.1],... 'Units','normalized','Back',[0,1,0]); uicontrol(hf,'Style','Frame','Position',[0.52,0.33,0.45,0.45],... 'Units','normalized','Back',[1,1,0]); ht=uicontrol(hf,'Style','Text','Position',[0.6,0.5,0.3,0.1],... 'Units','normalized','Horizontal','center','Back',[0,1,0]); COMM=['n=str2num(get(he1,''String''));',... 'b=str2num(get(he2,''String''));',... 'dec=trdec(n,b);','set(ht,''string'',dec);']; uicontrol(hf,'Style','Push','Position',[0.18,0.1,0.2,0.12],... 'String','转换','Units','normalized','Call',COMM); uicontrol(hf,'Style','Push','Position',[0.65,0.1,0.2,0.12],... 'String','退出','Units','normalized','Call','close(hf)'); 2、做一个带按钮的界面,当按动按钮时,在计算机声卡中播放一段音乐。(提示,找一个.wav 文件,简单起见可以在windows目录下找一个文件,将其放在当前工作目录下或搜索路径上,当按动“开始”按钮时调入该文件并播放,发声功能由sound函数完成,具体用法请查阅帮助信息)

Java图形用户界面实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:图形用户界面 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.11.24

一、实验目的 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 二、实验要求 1. 掌握使用布局管理器对组件进行管理的方法。 2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 掌握组件的使用方法。 5. 了解对话框的使用方法。 三、实验内容 (一)算术测试。 ?实验要求: 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确; ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame 类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是 软件的主类。 ?程序模板: Teacher.java public class Teacher { int numberOne,numberTwo; String operator=""; boolean right; public int giveNumberOne(int n) { numberOne=(int)(Math.random()*n)+1; return numberOne; } public int giveNumberT wo(int n) { numberTwo=(int)(Math.random()*n)+1; return numberTwo; } public String giveOperator() { double d=Math.random();

实验九Java图形用户界面设计1

实验九Java图形用户界面设计(1) 一实验目的 (1)掌握Frame与面板的使用 (2)布局管理器的使用 (3)布局管理器的使用 (4)边界风格的使用 (5)掌握简单Java事件的处理 二实验内容 1、创建并显示一个标题为“My Frame”,背景色为白色,大小为1000×1000的框架。在该框架中放置八个按钮,按钮的标题分别为“按钮1”、……“按钮8”。采用FlowLayout布局管理器。 程序: import java.awt.*; import javax.swing.*; public class Con1{ private JFrame f; private JButton b1,b2,b3,b4,b5,b6,b7,b8; public static void main(String args[]){ Con1 c=new Con1(); c.go(); } public void go(){

f=new JFrame("My Frame"); Container con=f.getContentPane(); con.setLayout(new FlowLayout()); con.setBackground(Color.white); con.setLayout(new FlowLayout(FlowLayout.RIGHT,920,50)); b1=new JButton("按键1"); b2=new JButton("按键2"); b3=new JButton("按键3"); b4=new JButton("按键4"); b5=new JButton("按键5"); b6=new JButton("按键6"); b7=new JButton("按键7"); b8=new JButton("按键8"); con.add(b1); c on.add(b2); c on.add(b3); c on.add(b4); con.add(b5); c on.add(b6); c on.add(b7); c on.add(b8); f.setSize(1000,1000); f.setVisible(true); } } 结果:

图形用户界面概述

6.1 图形用户界面概述 6.1.1 基本概念 (1)GUI—图形用户界面(Graphics User Interface)使用图形的方式借助菜单、按钮等标准界面元素和鼠标操作,帮助用户和计算机之间进行交互。 (2)AWT——抽象窗口工具集(abstract window toolkit) Java中用来生成图形用户界面的类库是java.awt 包,它Java中基本包中最大的一个,定义了所有GUI 组件类,以及其它用于构造图形界面的类。Sun公司在JDK1.0中就提供了AWT。 为了实现跨平台特性,AWT类库中的各种操作被定义成在一个并不存在的“抽象窗口”中进行。

AWT组件的类层次?Component 组件是所有AWT组件的基类,提供了基本的显示和事件处理特征。

(3)Swing GUI组件 ◆在最新的Java2中,javax.swing包被列入Java的基础类库JFC,其中定义的Swing GUI组件相对于 java.awt包的各种GUI组件增加了许多功能。 ◆Swing组件类 Swing包含250多个类(有些是组件,有些是支持类,组件的名字都以J 开头),Swing提供了40多个 组件,是AWT的4倍,用轻量组件(没有本地对等组件)代替了AWT的重量组件(与本地对等组件相关联)。重量级组件是指组件的属性跟操作系统有关,轻量级组件跟操作系统无关,轻量级组件在不同平台下显示效果一样。

Swing组件简介(续) Swing采用了一种MVC的设计范式,即“模型-视图-控制器”(Model-View-Controller): ◆模型(Model)——用于存储定义该组件的数据; ◆视图(View)——用模型中的数据生成该组件的可视化表示(即显示出该组件); ◆控制器(Controller)——响应用户对该组件的交互操作。 MVC是一种先进的组件设计模式。

实验6 图形用户界面设计

实验6. 图形用户界面设计 一、 实验目的 1. 掌握图形对象属性的基本操作; 2. 掌握菜单及对话框设计、建立控件对象的方法。 二、 实验环境 1. 计算机 2. matlab7.1 三、 实验说明 1. 正确操作,认真观察; 2. 实验学时:2学时; 3. 学会使用help ; 4. 保存整理实验结果,提交实验报告。 四、 实验内容 1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色,可以改变窗口背景颜色。 2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。 五、 实验程序及结果 1. screen=get(0,'ScreenSize'); W=screen(3);H=screen(4); figure('Color','w','Position',[0.2*H,0.2*H,0.5*W,0.3*H],... 'Name','菜单设计实验','NumberTitle','off','MenuBar','none'); hplot=uimenu(gcf,'Label','&Plot'); %定义plot 菜单项 uimenu(hplot,'Label','Sine Wave','Call',... ['t=-pi:pi/20:pi;','h0=plot(t,sin(t));',...

'set(hlr,''Enable'',''on'');',... 'set(hlg,''Enable'',''on'');',... 'set(hlb,''Enable'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Call',... ['t=-pi:pi/20:pi;','h0=plot(t,cos(t));',... 'set(hlr,''Enable'',''on'');',... 'set(hlg,''Enable'',''on'');',... 'set(hlb,''Enable'',''on'');']); uimenu(hplot,'Label','&Exit','Call','close(gcf)'); hc=uimenu(gcf,'Label','&Color'); %定义Color菜单项 hw=uimenu(hc,'Label','&Window Color'); uimenu(hw,'Label','&Red','Call','set(gcf,''Color'',''r'');'); uimenu(hw,'Label','&Green','Call','set(gcf,''Color'',''g'');'); uimenu(hw,'Label','&Blue','Call','set(gcf,''Color'',''b'');'); hl=uimenu(hc,'Label','&Line Color','Separator','on'); hlr=uimenu(hl,'Label','&Red','Call',... 'set(h0,''Color'',''r'');','Enable','off'); hlg=uimenu(hl,'Label','&Green','Call',... 'set(h0,''Color'',''g'');','Enable','off'); hlb=uimenu(hl,'Label','&Blue','Call',... 'set(h0,''Color'',''b'');','Enable','off'); 2. hf=figure('menubar','none','name','图形演示',... 'numbertitle','off'); %定义图形窗口 set(gcf,'unit','normalized','posi',[0.2,0.3,0.55,0.36]); axes('posi',[0.05,0.15,0.55,0.7]); %定义坐标轴 uicontrol(gcf,'style','text','unit','normalized',... %定义静态文本'posi',[0.63,0.85,0.1,0.1],'string','参数 a',... 'horizontal','center'); uicontrol(gcf,'style','text','unit','normalized',...

实验五图形用户界面

实验五图形用户界面 【开发语言及实现平台或实验环境】 Windows2000 或XP,JDK1.6 【实验目的】 1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。【实验要求】 1. 掌握在Applet 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方 法。 2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 了解Java Swing 组件的使用方法。 5. 了解对话框的使用方法。 【实验内容】 一.创建图形用户界面 图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add 方法把组件加入到容器中。 1.在Applet 中添加标签、按钮并使用网格布局 (1)程序功能:在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。 (2)编写LX5_1.java 程序文件,源代码如下。 import java.awt.*; import java.applet.Applet; public class LX5_1 extends Applet { Label l1; Button b1, b2, b3, b4, b5, b6; public void init() { setLayout(new GridLayout(3,3)); // 设置网格布局(3 行3 列共9 个网格) l1=new Label("标签1"); b1 = new Button("按钮1"); b2 = new Button("按钮2"); b3 = new Button("按钮3"); b4 = new Button("按钮4"); add(l1); add(b1); add(b2); add(b3);

图形用户界面 实验报告二

图形用户接口 081180015 戴稚晖通信工程 一、实验目的 1、了解嵌入式系统图形用户界面的基本编程方法。 2、探讨软件结构的层次关系,学习图形库的制作。 一、实验原理概述 1、图形用户界面简介 图形用户界面(GUI)是一种图形化为基础的用户界面,使用统一的图形操作方式,如可移动的视图,选项及鼠标,作为用户与操作系统之间的桥梁,从而使用 户摆脱了在命令行提示符下与操作系统进行交互的方式。 在嵌入式系统设计中,常被选择作为GUI系统进行开发的有:MiniGUI、MicroWindows、OpenGUI和QT/Embedded。这些GUI系统都是以Frame Buffer作为 图形驱动。Frame Buffer作为Linux内核提供的一种底层图形接口,将显示设备 映射到进程地址空间,是大多数GUI的基础。 2、Frame Buffer简介 Frame Buffer又称之为帧缓冲或显存,是系统内的一段存储空间,与显示屏的整个显示区域相对应,通过改变帧缓冲区的内容来改变显示信息。 Frame Buffer的空间大小由显示屏的大小和显示模式决定。显示屏可以以单色或者彩色显示,单色用一位来表示颜色,彩色可以用2、4、8、16、24、32等位 色。显示屏有单屏和双屏显示模式。其中双屏显示模式将整个屏幕分为两部分,每 个部分有各自的Frame Buffer,它们的地址无需连续,并有独立的两个通道将Frame Buffer中的数据传输到显示屏。 3、Frame Buffer与图像色彩 Frame Buffer支持多种颜色显示方式:单色,伪彩色,真彩色,直接色,灰度。伪彩色的RGB值不能直接从Frame Buffer中得到,而是通过调色板间接得到,

现代通信网实验报告

实验一用户接口电路及2/4线变换实验 一、实验目的 1.全面了解用户线接口电路功能(BORST)的作用及其实现方法。 2.通过对用户线接口电路芯片MY88622的学习与实验,进一步加深对BORST功能的理解。 3.熟悉用户模块电路的电路组成及工作原理。 4.掌握用户线接口电路对用户状态改变的识别原理。 二、实验设备 20M通用示波器一台,万用表一块,电话一部,RC-CK-II型实验箱一台 三、电路工作原理 图1-1 用户线接口功能框图 用户电路也可称为用户线接口电路(Subscriber Line Interface Circuit—SLIC)。任何交换机都具有用户线接口电路。根据用户电话机的不同类型,用户线接口电路(SLIC)分为模拟用户接口电路和数字用户接口电路两种。 模拟用户线接口电路在实现上的最大压力是应能承受馈电、铃流和外界干扰等高压大电流的冲击,过去都是采用晶体管、变压器(或混合线圈)、继电器等分立元件构成。在实际中,基于实现和应用上的考虑,通常将BORSHCT功能中过压保护由外接元器件完成,编解码器部分另单成一体,集成为编解码器(CODEC),其余功能由集成模拟SLIC完成。 在布控交换机中,向用户馈电,向用户振铃等功能都是在绳路中实现的,馈电电压一般是-60V,用户的馈电电流一般是20mA~30mA,铃流是25Hz,90V左右,而在程控交换机中,由于交换网络处理的是数字信息,无法向用户馈电、振铃等,所以向用户馈电、振铃等任务就由用户线接口电路来承担完成,再加上其它一些要求,程控交换机中的用户线接口电路一般要具有B(馈电),R(振铃)、S(监视)、C(编译码)、H(混合)、T(测试)、O

图形设备接口DirectX 图形接口指南

图形设备接口:DirectX 图形接口指南 疯狂代码 https://www.360docs.net/doc/61689610.html,/ ?: http:/https://www.360docs.net/doc/61689610.html,/GameDevelopment/Article35957.html 译者申明: 这些指南是我在阅读 DirectX8.1 SDK 中逐步翻译出来对于初次接触 DirectX Graphics 编程者而言这应该是很好上手资料其实本人就是从这些指南开始深入 Direct3D8.1 ;由于这是本人第次翻译英文材料言语不通词不达意的处定很多些术语也译得很勉强请见谅 此外需要转载此文者请保留以下部分: ----------------------------------------------------------------------- DirectX图形接口指南 译者:In355Hz 电子邮箱: In355Hz@https://www.360docs.net/doc/61689610.html, ----------------------------------------------------------------------- DirectX 图形接口指南: (应用于 DirectX 8.1 版 C/C 编程) 本区域指南将介绍说明如何在 C/C 中使用 Microsoft Direct3D 和 Direct3DX 完成些普通工作这些工作总是被分解成若干个必要步骤在某些情况下为了使表达更清楚些步骤还被细分成几个子步骤 本区域提供指南有: · 指南:创建设备 · 指南 2:演示顶点 · 指南 3:使用矩阵 · 指南 4:创建和使用光源 · 指南 5:使用纹理映射

· 指南 6:使用Mesh模型 提示:指南中出现举例代码来自于每个指南具体提供路径里源文件 这些指南中源代码是用 C 写成如果使用C编译器你必须适当改变这些文件使它们能够编译通过最少你需要加入vtable 然后用它引用接口 包含在举例代码中些注解可能和来自 Microsoft Platform Software Development Kit (SDK) 中源代码区别这些改变仅仅为了简化表述并且只限于注解中这样能够防止举例行为被改变 指南:创建设备 为了使用 Microsoft Direct3D你首先需要创建个应用窗口并紧接着创建和化 Direct3D 对象你应该使用这些对象提供 COM 接口来操纵它们以及创建描绘个场景所必需其它对象本指南包含 CreateDevice 举例将例示并介绍说明以下几个工作:创建 Direct3D 设备并且绘制个简单蓝色屏幕 这个指南使用以下步骤:化 Direct3D绘制场景以及最后清理和关闭 ·步骤:创建个窗口 ·步骤 2:化 Direct3D ·步骤 3:处理系统消息 ·步骤 4:绘制和显示场景 ·步骤 5:关闭和清除

图形用户界面设计表格组件示例

程序运行结果截图: 程序清单如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Example10_16 { public static void main(String arts []) { Win win = new Win(); } } class Win extends JFrame implements ActionListener { JTable table; Object a[][]; Object name[] = {"商品名称","单价","销售量","销售额"}; JButton computerRows,computerColums; JTextField inputRowsNumber; int initRows = 1; JPanel pSouth,pNorth; int count = 0,rowsNumber = 0; Win() { computerRows = new JButton("每件商品销售额"); computerColums = new JButton("总销售额"); inputRowsNumber = new JTextField(10); computerRows.addActionListener(this); computerColums.addActionListener(this); inputRowsNumber.addActionListener(this); pSouth = new JPanel();

相关文档
最新文档