




免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,图形用户界面设计,2,试卷题型及分值,一、单项选择题(每题2分,共20分)二、填空题(每空1分,共10分)三、问答题(每题5分,共30分)四、综合题(每题20分,共40分),1.1.1GUI概念,GUI是英文GraphicalUserInterface的简写,读作“goo-ee”,中文译作图形用户界面或图形用户接口,是指采用图形方式显示的计算机操作用户界面,是屏幕产品的视觉体验和人机互动操作接口。,1.4.1可视化程序设计的概念,可视化程序设计,也称为可视化编程,是以“所见即所得”的编程思想为原则,通过直观的操作方式进行界面的设计,并即时在设计环境看到其在运行环境的实际表现结果,从而实现编程工作的可视化,及程序代码的自动生成。其实质是设计过程可视化,设计结果即时呈现。通俗描述就是“看着画”界面。,JavaSwingGUI的实现:程序的GUI是以图像的方式在计算机显示屏上显示的,显示时需要确定图像各像素的坐标和颜色等信息。一个Swing程序的GUI首先需要建立窗口,窗口中有一个内容面板容纳了其他的界面组件和其他的容器。容器用于放置和管理组件。对窗口中各个组件需要管理其显示位置和大小,即进行布局设计和管理,这个工作通常委托给布局管理器。用户在界面组件上的操作产生事件,程序通过事件循环在事件调度线程中对事件进行响应。,5,2.1创建JavaGUI项目,(1)选择【文件】菜单的【新建项目】菜单项,或者单击位于IDE主工具栏(在菜单栏之下)中的【新建项目】图标,出现【新建项目】对话框。(2)在【类别】窗格中选择【Java】节点,在【项目】窗格中选择【Java应用程序】。单击【下一步】按钮。(3)在【项目名称】字段中输入项目名称,然后指定项目位置。(4)将【使用专用文件夹存储库】复选框保留为取消选中状态。(5)单击【创建主类】复选框,设置为取消选中状态(未打钩)。(6)单击【完成】按钮。,“口令”字段JPasswordField的设计,“口令”字段有一个echoChar属性设置输入内容的显示字符,其它属性与文本字段相同。,事件处理的概念,事件:发送给GUI系统的消息,该消息通知GUI系统某种事情已经发生,要求作出响应。事件源:引发产生事件的组件对象。事件处理:JavaGUI系统对用户在组件上的某些操作(即发生的事件)执行特定方法或运行特定程序,从而使用户与JavaGUI应用程序进行数据交换,或对程序的运行过程进行控制,SwingGUI事件处理步骤,(1)定义XxxEvent,描述GUI的Xxx事件。(2)定义事件处理器接口XxxListener,声明所有与该事件相关的处理方法。(3)在触发事件组件中定义处理Xxx事件的注册方法addXxxListener和注销方法removeXxxListener。(4)编写实现事件监听器接口的类,实现具体事件处理方法。,事件监听器的两种实现方式,2从事件适配器派生Swing(SWT)类库对具有两个或两个以上方法的事件监听器接口都设计了一个对应的事件适配器类,对各个方法做了空实现。Swing(SWT)应用程序的事件监听器就可以从相应的事件适配器类派生,在事件监听器类中只实现需要的方法。,例3.2在学生成绩管理系统的用户登录界面中,规定用户名必须是由字母和数字组成,否则为非法用户名。给用户名文本框jTextFieldUserName设计并注册一个校验器,防止输入非法字符。【分析】文本字段(JTextField)组件可以监听KeyEvent事件,在文本字段输入时发生。通过KeyEvent对象的getKeyChar方法可以获取用户击键所对应的字符。因此,可以设计KeyEvent事件的监听器,在typedText方法中监测用户输入内容,防止输入非法用户名。,KeyListener就有键按下keyPressed、键释放keyReleased击键keyTyped三个方法本例通过keyTyped方法监测用户输入内容,在initComponents()中自动生成代码:jTextFieldUserName.addKeyListener(newjava.awt.event.KeyAdapter()publicvoidkeyTyped(java.awt.event.KeyEventevt)jTextFieldUserNameKeyTyped(evt););,privatevoidjTextFieldUserNameKeyTyped(java.awt.event.KeyEventevt)charc=evt.getKeyChar();if(!(c=a,绝对布局和空值布局,绝对布局AbsoluteLayout是NetBeansIDE提供的一种布局管理器。这种布局是直接把组件放置到窗体中的所需位置,直接在窗体中进行移动来调整位置,直接拖动边框来改变组件大小。空值布局NullLayout就是不使用布局管理器,在容器中对组件直接定位及设置大小。绝对布局和空值布局源代码不同。,4.2自由设计GroupLayout,自由设计是NetBeansIDE将布局管理器与布局工具结合起来的一种技术,是GUI构建器的默认布局。自由设计采用GroupLayout布局管理器,同时提供的一个可视化设计工具。GroupLayout分组布局,分组布局是Swing中最复杂的布局管理器之一,可以用来实现绝大多数组件排布的需求。,4.3网格式布局和网格包布局,网格式布局GridLayout是一种按行列排列的矩形方格,常用于整齐划一的界面设计,使用较为简单。网格包布局GridBagLayout也像网格式布局一样将布局空间划分成矩形网格,但做了重大改进和扩展,是Java平台提供的最灵活且最复杂的布局管理器之一。1、GridBagLayout管理的所有行和列都可以是大小不同的;2、GridLayout把每个组件限制到一个单元格,而GridBagLayout并不这样:组件在容器中可以占据任意大小的矩形区域。,例4.3采用网格式布局设计一个简单四则运算计算器。,等号运算,if(!.equals(str1),数字按钮,privatevoidnumberIt(Strings)if(sig=0)str1+=s;jLabel1.setText(str1);jLabel2.setText(str2);jLabelMethod.setText();elsestr2+=s;jLabel2.setText(str2);jTextFieldResult.setText();privatevoidjButtonNum1ActionPerformed(java.awt.event.ActionEventevt)/TODOaddyourhandlingcodehere:numberIt(1);,运算符按钮,privatevoidsigIt(charc)if(!.equals(str1)sig=c;jLabelMethod.setText(+c);jTextFieldResult.setText();elsejLabel1.setText(str1);jLabel2.setText(str2);jLabelMethod.setText();jTextFieldResult.setText();return;privatevoidjButtonAddActionPerformed(java.awt.event.ActionEventevt)/TODOaddyourhandlingcodehere:sigIt(+);,流式布局FlowLayout,这是最简单的一种布局,也就是能力最弱的布局。按照组件加入的次序从左到右安排组件,当空间不足时,就移到下一行。在改变容器大小时,其中的组件可能移到下一行或上一行显示,但是组件次序不变。,边框式布局BorderLayout,一个BorderLayout对象将界面分成五大区域,分别用BorderLayout类的静态常量指定:-PAGE_START-PAGE_END-LINE_START-LINE_END-CENTER,卡片式布局、叠加布局,卡片式布局CardLayout设置容器内所有组件的位置、大小相同,然后层叠在一起,只有位于最上面的组件可见。叠加布局OverlayLayout以重叠方式布局组件,并且以对齐点设置组件的对齐位置。,4.5Box布局,Box布局在一个水平行或一个垂直列中布局组件。BoxLayout会考虑到每一个组件的x与y对齐属性及其最大尺寸。布局组件过程中,经常需要组件之间保持适当的距离,【SwingFiller】可以作为组件之间的填充物使用。填充器是无色透明的组件。,5.1面板容器,面板(JPanel)是一个轻量容器组件,也是最常用的中间容器,用于容纳界面元素。为面板设置适当的布局管理器,可以对组件进行不同的布局组合,可以通过容器的嵌套构建复杂的界面。首先需要一个顶级容器,然后在该顶级容器中创建面板。,Swing采用自顶向下的方式构建GUI,即先创建容器,再向容器中添加组件。容器也是进行界面设计和布局的重要工具。Swing提供了滚动窗格容器,通过滚动条移动观察窗而显示超出显示面积的组件部分。拆分窗格JSplitPane是一个中间容器组件,它把父容器的空间分隔成两个部分,并提供一条分隔条。,一个标签化窗格是一个容器,其中包含了多个选项卡。选项卡上还有一个显示标识文字的标签(tab)。每张选项卡一般都放置一个中间型容器,在该容器中创建具体的功能组件。分层窗格JLayeredPane是一种Swing容器,提供了管理其内部的组件的第三维:深度(也称Z顺序或层)。,28,桌面窗格JDesktopPane是用于创建多文档界面或虚拟桌面的容器。桌面窗格JDesktopPane是特殊的分层窗格JLayeredPane,管理可能的重叠内部窗体。桌面窗格是中间容器,使用时需要把它添加到顶级容器或顶级容器所包含的容器中。内部框架JInternalFrame是一个轻量级的高层窗口,且有一个根面板,许多方面都很像JFrame,但它并不是一个顶层窗口。内部框架一般放在桌面窗格中用以构建多文档界面。,6.1对话框,对话框尽管是一个高层容器,一般都用于为应用程序窗口提供与用户交流信息的手段,且在需要时以弹出式窗口的方式显示在界面上。创建对话框时可以为它设置一个父容器。这个父容器可以是一个JFrame窗体,也可以是另外一个对话框组件。,6.2选项窗格,选项窗格JOptionPane是可以弹出一个窗口,以便显示一些信息,可能需要用户选择某个选项,或要求用户输入简单信息的对话框。对于大多数需要简单使用对话框的程序,使用选项窗格更为简单。,四种消息类型:(1)Message:一般消息对话框,无返回值(2)Input:输入对话框,返回用户输入内容(3)Confirm:确认对话框,返回值标识了某单击按钮(4)Option:选项对话框,7.1菜单栏JMenuBar,菜单栏是程序窗体JFrame的一个组成部分,位于层级面板的上部。菜单JMenu是放置在菜单栏上的基本组件。当单击一个菜单时,在一个弹出式菜单面板上显示它所包含的子组件。菜单项JMenuItem是依附于菜单、子菜单或弹出式菜单的可视组件。分隔符JSeparator是一种特殊的组件,在界面上创建一条水平或垂直分隔线。,Swing库所提供的每个组件都包含三方面:内容是组件的状态和所展现的数据,如文本区域的宽度、可否编辑等,其中输入的文本等;外观即是组件的图形化形态,如大小、颜色、位置装饰编辑等;行为即是组件对事件的反应。Swing库对组件的设计采用MVC设计模式。,第8章Swing控件的使用,组合框由一个提供选择项的选项列表,一个向下拉开列表的下三角按钮和一个帮助查找选择项的文本框组合而成。格式化字段JFormattedTextFiled使用关键在于通过formatterFactory属性设置合适的输入格式。编辑器窗格是用来分析并显示格式化文本的组件,并提供适当的编辑功能。文本窗格JTextPane是为文字和版面处理设计的组件。当需要对文字设置字体缩放、改变文字风格、加入图片等效果时,应该使用文本窗格组件。,滑块Jslider:一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件。常见于播放器的音量控制、进度显示和控制等程序界面中。滚动条JScrollBar是用户操纵视口的组件,同时也显示视口的当前位置。进度条JProgressBar是为用户反馈任务的运行进度的组件。微调器JSpinner是一个左边有输入框,右边有上下三角按钮的组件,36,第9章表格组件与数据库的使用,多数情况下,输入数据被保存在数据库中,或者程序中使用的数据就是直接从数据库中获取。大量结构化数据一种主要输出形式是表格。大量JavaGUI程序都依赖于数据库。Java语言提供了访问数据库的APIJDBC(JavaDadaBaseConnectivity)。JDK6中,Derby10.2.2作为内嵌的数据库,称为JavaDB。,JavaDB两种运行模式,嵌入式数据库运行模式:Derby数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它。开发单机运行的Java应用程序,且数据量不是太大时,可以使用这种模式。,网络数据库运行模式:Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。,第10章树JTree的设计与使用,许多情况下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务会计学模拟题
- 自动控制原理考试题
- 设施维护管理制度(9篇)
- 2024-2025学年冀教版八年级下学期英语期末试卷(含答案)
- 幼儿园《疫情防控安全》教案5篇
- 2023年电大开放教育货币银行学网考题库
- 2025年android自学教程!BAT等大厂必问技术面试题BAT大厂面试总结-bat企业安卓课程
- 期末应用题专项训练:分数的加法和减法(含解析)-2024-2025学年数学五年级下册人教版
- 建筑施工特种作业-建筑电工真题库-9
- 日语听力题目大全及答案
- 2024年黄冈团风县招聘城区社区工作者真题
- 2025图解《政务数据共享条例》V1.0学习解读
- 2025电商平台店铺转让合同模板
- 2025年人教版(2024)初中英语七年级下册期末考试测试卷及答案
- (2025)事业编考试题库(附含答案)
- 女性美学课堂企业制定与实施新质生产力项目商业计划书
- 高端私人定制服务方案
- 2025年保密知识竞赛考试题库300题(含答案)
- 部编版2024-2025学年四年级下册语文期末测试卷(含答案)
- 2025年医保政策考试题库及答案:基础解读与医保政策法规试题试卷
- 2025至2030年中国液化设备行业投资前景及策略咨询研究报告
评论
0/150
提交评论