Java09可视化程序设计.ppt_第1页
Java09可视化程序设计.ppt_第2页
Java09可视化程序设计.ppt_第3页
Java09可视化程序设计.ppt_第4页
Java09可视化程序设计.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java技术与应用,可视化程序设计 (第9章),西安交大 卫颜俊 2009年5月 电子信箱:Mr.J QQ: 610568018 网站: 7/java,主要内容,GUI体系简介 AWT可视化基础 绘图 组件与菜单 容器 布局管理器 事件 Swing可视化应用基础 案例中的可视化设计,从Word和计算器说起,Word 计算器 ,GUI体系简介,字符界面(DOS和控制台) 使用字符串和命令行的方式与用户交互 举例:Application类型程序中的main(String args) 图形用户界面(Windows和GUI) 使用图形的方式并借助菜单、按钮等标准界面元素以及鼠标操作,方便地向计算机系统发出指令、启动操作,并将系统运行的结果同样以图形方式呈现,GUI窗口和窗口元素,AWT可视化基础,抽象窗口工具包,AWT(Abstract Window Toolkit) Java语言中提供的GUI的基本API 独立于机器平台 支持Application和Applet两类程序框架,包括: 容器、组件、布局管理器、事件处理和其它图形和图像工具。 组件、容器和布局管理器属于java.awt包 事件属于java.awt.event包。,窗口与屏幕的关系,主物理屏幕 用户正在使用的屏幕,即框架或窗口 主物理屏幕的坐标体系是:原点在左上角,水平向右x值越来越大,垂直向下y值越来越大 虚拟屏幕 由主物理屏幕以外的其它多个物理屏幕一起构成内存中的虚拟屏幕,起屏幕缓冲区的作用 虚拟屏幕的坐标原点一般在屏幕中心位置 ,窗口与屏幕的关系(示意图),常用的绘图类和工具类,组件父类-Component,常用的组件与菜单,容器父类-Container,常用的容器,【例9-1】,题目: 在屏幕上绘制一条y=sin(x)曲线,其中x0,2。 关键点: 继承Frame类得到其子类 在子类中定义paint方法 在paint方法体中计算循环变量对应的sin之值并将其转换为屏幕坐标 假设横坐标i的值是0,600范围内的整数,则纵坐标的值为y=(int) (600 - (1 + Math.sin(i * 3.1415926 / 300) * 280),在坐标处绘制一个小圆(直径为10) ,布局管理器,负责管理容器内的所有组件,包括组件的排列顺序、组件的大小、位置以及当窗口移动或调整大小后组件如何变化等 每个容器都需要有一个布局管理器 ,事件,Java语言采取了授权模型,事件源可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理。 授权模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。 事件处理者(监听器)通常是一个类,该类如果要能够处理某种类型的事件,就必须实现与该事件类型对应的接口。 ,事件处理的三种对象,事件,用户界面操作的操作类型; 组件-事件源,事件发生的场所; 监听器,接收事件对象并对其进行处理的对象。 ,事件处理的一般方法, 为了处理某种事件SomeEvent,需要定义相应的事件监听器类,其父接口名为SomeListener,并编写相应的事件处理代码,以完成该事件的处理工作; 需要对事件监听器类构造对象,并源通过addSomeListener方法对事件进行监听器注册,事件源上发生的事件才能响应; 当事件源不需要该事件监听器对象时,可以通过removeSomeListener监听器注销。 ,事件SomeEvent分类, AWTEvent类:所有AWT事件的根事件类,为抽象类。 低级事件类:ComponentEvent、ContainerEvent、WindowEvent、FocusEvent、KeyEvent、MouseEvent和MouseWheelEvent。 高级事件类:ActionEvent、AdjustmentEvent、ItemEvent和TextEvent。 ,事件监听器类,一个事件的事件监听器SomeListener接口对应的事件适配器类为SomeAdapter。 事件适配器提供了一种简单的实现监听器的手段, 可以缩短程序代码。缺点是由于java语言的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器了。 ,事件、监听和适配之关系,【例9-2】,题目: 建立一个窗口,按照BorderLayout布局方式在最顶部放置一个TextField组件,中央放置一个ScrollPane容器,该容器中又放置一个TextArea组件;当在TextField组件中输入文字时,按回车追加到TextArea组件中。 界面设计: 参见程序文件“TestActionEvent.java ,【例9-3】,题目: 建立一个窗口,当输入键盘非控制字符(包括汉字)时,在窗口随机位置处显示该字符; 当拖动鼠标时,绘制一条线段;当关闭窗口时,退出程序。 参见程序文件“TestKeyMouseWindowEvent.java” ,Swing可视化应用基础,Swing调用本地图形子系统中的底层例程,而不是依赖操作系统的高层用户界面模块,其组件几乎都是轻量级组件。 Swing是由100%纯Java实现的,其组件是用Java实现的轻量级组件,没有本地代码,不依赖操作系统的支持。 AWT的缺点是组件通过与具体平台相关的对等类(Peer)实现,因此,Swing比AWT组件具有更强的实用性。 ,Swing的类层次,Swing组件在javax.swing包中,最典型的组件和容器的名称是对AWT的组件和容器的名称之前加入“J”字母即可 。 ,Swing组件的层次体系,Swing容器的层次体系,常用的Swing组件和容器,【例9-4】,题目: 显示当前年月的月历 关键点: 设定容器的布局为GridLayout,然后定义42个JButton按钮组件,分别放置最多31天的31个按钮,在容器中首先加入7个JLabel标签组件以表示各星期名标题,然后建立31个按钮对象, 使用GregorianCalendar计算出本年本月的1号的星期号和最大天数,根据计算的结果来决定每一个按钮是否隐藏,并对当天对应的按钮设某种颜色背景。其中,按钮的标题使用setText方法来修改,背景颜色使用setBackground方法来修改。 ,【例9-4】(续),关键点: int weekDayofFirstDay = FirstDay.get(Calendar.DAY_OF_WEEK); /本年本月1号对应的星期号 int maxDaysofThisMonth = FirstDay.getActualMaximum(Calendar. DAY_OF_MONTH); /本年本月最大天数 。 参见程序文件“Application1.java”和“Frame1.java” ,Swing标准对话框的使用,1. JColorChooser类。 颜色调色板对话框,其方法: static Color showDialog(Component component, String title, Color initialColor) 显示颜色调色板对话框。 ,Swing标准对话框的使用,2. JFileChooser类。文件对话框。 构造方法:JFileChooser(File currentDirectory) 使用给定的目录作为路径来构造一个对象。方法: int showOpenDialog(Component parent) 弹出一个“打开文件“对话框。 int showSaveDialog(Component parent) 弹出一个“保存文件“对话框。 返回值:当在对话框中按确定按钮时,为JFileChooser.APPROVE_OPTION,否则为JFileChooser.CANCEL_OPTION File getSelectedFile() 返回选中的文件。 File getSelectedFiles() 如果将文件对话框设置为允许选择多个文件,则返回选中文件的列表。 ,Swing标准对话框的使用,3. JOptionPane类。信息对话框。 字段: static int YES_OPTION 选择YES时从类方法返回的值。 static int NO_OPTION 选择NO时从类方法返回的值。 static int OK_OPTION 选择OK时从类方法返回的值。 static int CANCEL_OPTION 选择CANCEL时从类方法返回的值。,Swing标准对话框的使用(续),方法: static int showConfirmDialog(Component parentComponent, Object message) 显示用户确认对话框。 其中参数:parentComponent:对话框的父组件;message:显示提示内容;返回:以上字段值之一,表示用户的选择。 static String showInputDialog(Component parentComponent, Object message, Object initialSelectionValue) 显示请求用户输入内容的问题消息对话框。 其中参数:parentComponent:对话框的父组件;message:显示提示内容; initialSelectionValue:用于初始化输入内容;返回:用户输入的新内容。 static void showMessageDialog(Component parentComponent, Object message) 调出信息消息对话框。 其中参数:parentComponent:对话框的父组件;message:显示提示内容。设置为允许选择多个文件,则返回选中文件的列表。 ,【例9-5】,题目: Swing标准对话框的使用演示 运行结果: 参见程序文件“Application2.java”和“Frame2.java” ,【例9-6】,题目:JTable二维表格的使用 参见程序文件“Application3.java”和“Frame2.java” ,案例中的可视化设计,题目: 虚拟酒店点菜系统 关键点: 客人点菜窗口 完成客人的登录后应列出客人的信息,并设计菜系表格供客人选择,根据菜系显示该菜系的所有菜谱列表供客人进一步选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论