版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A,1,图形用户界面设计,A,2,试卷题型及分值,一、单项选择题(每题2分,共20分) 二、填空题(每空1分,共10分) 三、问答题(每题5分,共30分) 四、综合题(每题20分,共40分),A,3,1.1.1 GUI概念,GUI是英文Graphical User Interface的简写,读作“goo-ee”,中文译作图形用户界面或图形用户接口,是指采用图形方式显示的计算机操作用户界面,是屏幕产品的视觉体验和人机互动操作接口。,A,4,1.4.1可视化程序设计的概念,可视化程序设计,也称为可视化编程,是以“所见即所得”的编程思想为原则,通过直观的操作方式进行界面的设计,并即时在设计环境看到其
2、在运行环境的实际表现结果,从而实现编程工作的可视化,及程序代码的自动生成。 其实质是设计过程可视化,设计结果即时呈现。通俗描述就是“看着画”界面。,A,5,Java Swing GUI的实现: 程序的GUI是以图像的方式在计算机显示屏上显示的,显示时需要确定图像各像素的坐标和颜色等信息。 一个Swing程序的GUI首先需要建立窗口,窗口中有一个内容面板容纳了其他的界面组件和其他的容器。 容器用于放置和管理组件。对窗口中各个组件需要管理其显示位置和大小,即进行布局设计和管理,这个工作通常委托给布局管理器。 用户在界面组件上的操作产生事件,程序通过事件循环在事件调度线程中对事件进行响应。,A,6,
3、2.1 创建Java GUI项目,(1)选择【文件】菜单的【新建项目】菜单项,或者单击位于IDE主工具栏(在菜单栏之下)中的【新建项目】图标 ,出现【新建项目】对话框。 (2)在【类别】窗格中选择【Java】节点,在【项目】窗格中选择【Java应用程序】。单击【下一步】按钮。 (3)在【项目名称】字段中输入项目名称,然后指定项目位置。 (4)将【使用专用文件夹存储库】复选框保留为取消选中状态。 (5)单击【创建主类】复选框,设置为取消选中状态(未打钩)。 (6)单击【完成】按钮。,A,7,“口令”字段JPasswordField的设计,“口令”字段有一个echoChar属性设置输入内容的显示字
4、符,其它属性与文本字段相同。,A,8,事件处理的概念,事件:发送给GUI系统的消息,该消息通知GUI系统某种事情已经发生,要求作出响应。 事件源:引发产生事件的组件对象。 事件处理:Java GUI系统对用户在组件上的某些操作(即发生的事件)执行特定方法或运行特定程序,从而使用户与Java GUI应用程序进行数据交换,或对程序的运行过程进行控制,A,9,Swing GUI事件处理步骤,(1)定义XxxEvent,描述GUI的Xxx事件。 (2)定义事件处理器接口XxxListener,声明所有与该事件相关的处理方法。 (3)在触发事件组件中定义处理Xxx事件的注册方法addXxxListene
5、r和注销方法removeXxxListener。 (4)编写实现事件监听器接口的类,实现具体事件处理方法。,A,10,事件监听器的两种实现方式,2 从事件适配器派生 Swing(SWT)类库对具有两个或两个以上方法的事件监听器接口都设计了一个对应的事件适配器类,对各个方法做了空实现。 Swing(SWT)应用程序的事件监听器就可以从相应的事件适配器类派生,在事件监听器类中只实现需要的方法。,A,11,例3.2 在学生成绩管理系统的用户登录界面中,规定用户名必须是由字母和数字组成,否则为非法用户名。给用户名文本框jTextFieldUserName设计并注册一个校验器,防止输入非法字符。 【分析
6、】文本字段(JTextField)组件可以监听KeyEvent事件,在文本字段输入时发生。通过KeyEvent对象的getKeyChar方法可以获取用户击键所对应的字符。因此,可以设计KeyEvent事件的监听器,在typedText方法中监测用户输入内容,防止输入非法用户名。,A,12,KeyListener就有键按下keyPressed、 键释放keyReleased 击键 keyTyped 三个方法 本例通过keyTyped方法监测用户输入内容,A,13,在initComponents()中自动生成代码: jTextFieldUserName.addKeyListener(new jav
7、a.awt.event.KeyAdapter() public void keyTyped(java.awt.event.KeyEvent evt) jTextFieldUserNameKeyTyped(evt); );,A,14,private void jTextFieldUserNameKeyTyped(java.awt.event.KeyEvent evt) char c = evt.getKeyChar() ; if(!(c=a ,A,15,绝对布局和空值布局,绝对布局AbsoluteLayout是NetBeans IDE提供的一种布局管理器。这种布局是直接把组件放置到窗体中的所需位
8、置,直接在窗体中进行移动来调整位置,直接拖动边框来改变组件大小。 空值布局Null Layout就是不使用布局管理器,在容器中对组件直接定位及设置大小。 绝对布局和空值布局源代码不同。,A,16,4.2自由设计GroupLayout,自由设计是NetBeans IDE将布局管理器与布局工具结合起来的一种技术,是GUI构建器的默认布局。 自由设计采用GroupLayout布局管理器,同时提供的一个可视化设计工具。 Group Layout 分组布局,分组布局是 Swing 中最复杂的布局管理器之一,可以用来实现绝大多数组件排布的需求。,A,17,4.3网格式布局和网格包布局,网格式布局GridL
9、ayout是一种按行列排列的矩形方格,常用于整齐划一的界面设计,使用较为简单。 网格包布局GridBagLayout也像网格式布局一样将布局空间划分成矩形网格,但做了重大改进和扩展,是Java 平台提供的最灵活且最复杂的布局管理器之一。 1、GridBagLayout 管理的所有行和列都可以是大小不同的; 2 、 GridLayout 把每个组件限制到一个单元格,而 GridBagLayout 并不这样:组件在容器中可以占据任意大小的矩形区域。,A,18,例4.3采用网格式布局设计一个简单四则运算计算器。,A,19,等号运算,if (!.equals(str1) ,A,20,数字按钮,priv
10、ate void numberIt(String s) if (sig = 0) str1 += s; jLabel1.setText(str1); jLabel2.setText(str2); jLabelMethod.setText(); else str2 += s; jLabel2.setText(str2); jTextFieldResult.setText(); private void jButtonNum1ActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: num
11、berIt(1); ,A,21,运算符按钮,private void sigIt(char c) if (!.equals(str1) sig = c; jLabelMethod.setText( + c); jTextFieldResult.setText(); else jLabel1.setText(str1); jLabel2.setText(str2); jLabelMethod.setText(); jTextFieldResult.setText(); return; private void jButtonAddActionPerformed(java.awt.event.Ac
12、tionEvent evt) / TODO add your handling code here: sigIt(+); ,A,22,流式布局FlowLayout,这是最简单的一种布局,也就是能力最弱的布局。按照组件加入的次序从左到右安排组件,当空间不足时,就移到下一行。在改变容器大小时,其中的组件可能移到下一行或上一行显示,但是组件次序不变。,A,23,边框式布局BorderLayout,一个BorderLayout对象将界面分成五大区域,分别用BorderLayout类的静态常量指定: -PAGE_START -PAGE_END -LINE_START -LINE_END -CENTER,
13、A,24,卡片式布局、叠加布局,卡片式布局CardLayout设置容器内所有组件的位置、大小相同,然后层叠在一起,只有位于最上面的组件可见。 叠加布局OverlayLayout以重叠方式布局组件,并且以对齐点设置组件的对齐位置。,A,25,4.5 Box布局,Box布局在一个水平行或一个垂直列中布局组件。 BoxLayout会考虑到每一个组件的x与y对齐属性及其最大尺寸。 布局组件过程中,经常需要组件之间保持适当的距离,【Swing Filler】可以作为组件之间的填充物使用。 填充器是无色透明的组件。,A,26,5.1面板容器,面板(JPanel)是一个轻量容器组件,也是最常用的中间容器,用
14、于容纳界面元素。 为面板设置适当的布局管理器,可以对组件进行不同的布局组合,可以通过容器的嵌套构建复杂的界面。 首先需要一个顶级容器,然后在该顶级容器中创建面板。,A,27,Swing采用自顶向下的方式构建GUI,即先创建容器,再向容器中添加组件。 容器也是进行界面设计和布局的重要工具。 Swing提供了滚动窗格容器,通过滚动条移动观察窗而显示超出显示面积的组件部分。 拆分窗格JSplitPane是一个中间容器组件,它把父容器的空间分隔成两个部分,并提供一条分隔条。,A,28,一个标签化窗格是一个容器,其中包含了多个选项卡。选项卡上还有一个显示标识文字的标签(tab)。每张选项卡一般都放置一个
15、中间型容器,在该容器中创建具体的功能组件。 分层窗格JLayeredPane是一种Swing容器,提供了管理其内部的组件的第三维:深度(也称Z顺序或层)。,A,29,桌面窗格JDesktopPane是用于创建多文档界面或虚拟桌面的容器。桌面窗格JDesktopPane是特殊的分层窗格JLayeredPane,管理可能的重叠内部窗体。 桌面窗格是中间容器,使用时需要把它添加到顶级容器或顶级容器所包含的容器中。 内部框架JInternalFrame是一个轻量级的高层窗口,且有一个根面板,许多方面都很像JFrame,但它并不是一个顶层窗口。 内部框架一般放在桌面窗格中用以构建多文档界面。,A,30,
16、6.1 对话框,对话框尽管是一个高层容器,一般都用于为应用程序窗口提供与用户交流信息的手段,且在需要时以弹出式窗口的方式显示在界面上。 创建对话框时可以为它设置一个父容器。这个父容器可以是一个JFrame窗体,也可以是另外一个对话框组件。,A,31,6.2选项窗格,选项窗格JOptionPane是可以弹出一个窗口,以便显示一些信息,可能需要用户选择某个选项,或要求用户输入简单信息的对话框。 对于大多数需要简单使用对话框的程序,使用选项窗格更为简单。,A,32,四种消息类型: (1)Message:一般消息对话框,无返回值 (2)Input:输入对话框,返回用户输入内容 (3)Confirm:确
17、认对话框,返回值标识了某单击按钮 (4)Option:选项对话框,A,33,7.1 菜单栏JMenuBar,菜单栏是程序窗体JFrame的一个组成部分,位于层级面板的上部。 菜单JMenu是放置在菜单栏上的基本组件。 当单击一个菜单时,在一个弹出式菜单面板上显示它所包含的子组件。 菜单项JMenuItem是依附于菜单、子菜单或弹出式菜单的可视组件。 分隔符JSeparator是一种特殊的组件,在界面上创建一条水平或垂直分隔线。,A,34,Swing库所提供的每个组件都包含三方面: 内容是组件的状态和所展现的数据,如文本区域的宽度、可否编辑等,其中输入的文本等; 外观即是组件的图形化形态,如大小
18、、颜色、位置装饰编辑等; 行为即是组件对事件的反应。 Swing库对组件的设计采用MVC设计模式。,A,35,第8章 Swing控件的使用,组合框由一个提供选择项的选项列表,一个向下拉开列表的下三角按钮和一个帮助查找选择项的文本框组合而成。 格式化字段JFormattedTextFiled使用关键在于通过formatterFactory属性设置合适的输入格式。 编辑器窗格是用来分析并显示格式化文本的组件,并提供适当的编辑功能。 文本窗格JTextPane是为文字和版面处理设计的组件。当需要对文字设置字体缩放、改变文字风格、加入图片等效果时,应该使用文本窗格组件。,A,36,滑块Jslider:一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件。常见于播放器的音量控制、进度显示和控制等程序界面中。 滚动条JScrollBar是用户操纵视口的组件,同时也显示视口的当前位置。 进度条JProgressBar是为用户反馈任务的运行进度的组件。 微调器JSpinner是一个左边有输入框,右边有上下三角按钮的组件,A,37,第9章 表格组件与数据库的使用,多数情况下,输入数据被保存在数据库中,或者程序中使用的数据就是直接从数据库中获取。 大量结构化数据一种主要输出形式是表格。 大量Java GUI程序都依赖于数据库。 Java语言提供了访问数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年四川省高考语文试卷(含答案)
- 《华生的行为主义》课件
- 《创投圈常用术语》课件
- 《水电材料的认识》课件
- 2026年儿科专科护理综合试题及答案
- 2026年法律法规与公民权益保护考试(含答案)
- 2026年防坍塌安全基础知识试题及答案
- 2026年工业工程(流程优化)试题及答案
- 2026年机械对口单招模拟试题(含答案)
- 人才测评师人才测评工具选择与应用题库(含答案)
- 2026年科研诚信建设培训课件(精讲版)
- 中国人寿保险集团笔试题目
- 2026年浙江省宁波慈溪观海卫镇人民政府招聘编外13人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年秋新教材教科版五年级科学上册教学计划及进度表
- (2026年秋)外研社版六年级英语上册单词默写表(汉译英)
- (2026年)皮内注射技术课件
- 2025版《广东省护理病历书写管理规范(试行)》
- 小学英语教学颜色课件
- 南宁市马山县公安辅警招聘知识考试题库及答案
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- 硬脑膜动静脉瘘课件
评论
0/150
提交评论