Java图形用户界面编程.ppt

上传人:max****ui 文档编号:6359870 上传时间:2020-02-23 格式:PPT 页数:33 大小:327.50KB
返回 下载 相关 举报
Java图形用户界面编程.ppt_第1页
第1页 / 共33页
Java图形用户界面编程.ppt_第2页
第2页 / 共33页
Java图形用户界面编程.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
线程 是进程内部单一的一个顺序控制流 线程和进程每个进程都有独立的代码和数据空间 进程上下文 进程切换的开销大 线程 轻量的进程 同一类线程共享代码和数据空间 每个线程有独立的运行栈和程序计数器 PC 线程切换的开销小 多线程 在同一个进程中有多个顺序流同时执行Java的线程是通过java lang Thread类来实现的 每个线程都是通过某个特定Thread对象所对应的方法run 来完成其操作的 方法run 称为线程体 即线程的可执行代码 返回 多线程回顾 多线程回顾 要将一段代码在一个新的线程上运行 该代码应该在一个类的run函数中 并且函数所在的类是Thread类的子类 子类要覆盖Thread类中的run函数 在子类的run函数中调用想在新线程上运行的程序代码 启动一个新的线程 我们不是直接调用Thread的子类对象的run函数 而是调用Thread子类对象的start 从Thread类继承到的 方法 Thread类对象的start方法将产生一个新的线程 并在该线程上运行该Thread类对象中的run方法 由于线程的代码段在run方法中 那么该方法执行完成后线程也就相应的结束了 因而我们可以通过控制run方法中循环的条件来控制线程的结束 1 继承类ThreadpublicclassMythreadextendsThread2 实现接口RunnablepublicclassMythreadimplementsRunnable3 上述两种方法中都可用类Thread产生线程的对象Threadnewthread 4 创建并启动线程newthread newThread newthread start 5 run方法是运行线程的主体 启动线程时 由JVM直接调用publicvoidrun 6sleep方法的作用 暂停 毫秒时间的 线程的执行 让其它线程得到机会 sleep要丢出异常 必须捕获 Try sleep 1000 catch InterruptedExceptione 返回 多线程回顾 第12章图形用户界面 GUI GraphicsUserInterface Java2平台包括 标准版 J2SE 企业版 J2EE 和微缩版 J2ME 三个版本 J2SE J2ME和J2EE 这也就是SunONE OpenNetEnvironment 体系 J2SE就是Java2的标准版 主要用于桌面应用软件的编程 J2ME主要应用于嵌入式系统开发 如手机和PDA的编程 J2EE是Java2的企业版 主要用于分布式的网络程序的开发 如电子商务网站和ERP系统 补充计算机基础知识 什么是C S模式 C S Client Server 客户机 服务器 模式又称C S结构 是软件系统体系结构的一种 C S模式简单地讲就是基于企业内部网络的应用系统 与B S Browser Server 浏览器 服务器 模式相比 C S模式的应用系统最大的好处是不依赖企业外网环境 即无论企业是否能够上网 都不影响应用 什么是B S模式 B S Browser Server 浏览器 服务器 模式又称B S结构 它是随着Internet技术的兴起 对C S模式应用的扩展 在这种结构下 用户工作界面是通过IE浏览器来实现的 B S模式最大的好处是运行维护比较简便 能实现不同的人员 从不同的地点 以不同的接入方式 比如LAN WAN Internet Intranet等 访问和操作共同的数据 最大的缺点是对企业外网环境依赖性太强 由于各种原因引起企业外网中断都会造成系统瘫痪 补充计算机基础知识 一 B S模式的优点和缺点B S结构的优点 1 具有分布性特点 可以随时随地进行查询 浏览等业务处理 2 业务扩展简单方便 通过增加网页即可增加服务器功能 3 维护简单方便 只需要改变网页 即可实现所有用户的同步更新 4 开发简单 共享性强B S模式的缺点 1 个性化特点明显降低 无法实现具有个性化的功能要求 2 操作是以鼠标为最基本的操作方式 无法满足快速操作的要求 3 页面动态刷新 响应速度明显降低 4 无法实现分页显示 给数据库访问造成较大的压力 5 功能弱化 难以实现传统模式下的特殊功能要求 二 C S模式的优点和缺点C S模式的优点1 由于客户端实现与服务器的直接相连 没有中间环节 因此响应速度快 2 操作界面漂亮 形式多样 可以充分满足客户自身的个性化要求 3 C S结构的管理信息系统具有较强的事务处理能力 能实现复杂的业务流程 C S模式的缺点1 需要专门的客户端安装程序 分布功能弱 针对点多面广且不具备网络条件的用户群体 不能够实现快速部署安装和配置 2 兼容性差 对于不同的开发工具 具有较大的局限性 若采用不同工具 需要重新改写程序 3 开发成本较高 需要具有一定专业水准的技术人员才能完成 补充计算机基础知识 7 1图形用户界面设计基础 图形用户界面 GraphicsUserInterface 简称GUI 是指以图形的方式实现人与计算机之间的交互 在该界面下用户往往只需通过单击 双击 拖曳鼠标和简单的文字键入就可以轻松地操作计算机完成任务 图形用户界面生动形象 操作直观简便 一 AWT与Swing Java类库中提供AWT AbstractWindowToolkit 抽象窗口工具集 和Swing两套组件是Java类库中提供的两类来实现图形用户界面 AWT由java awt包提供 Swing由javax swing包提供 其中均包含了用于设计图形用户界面的各种组件 布局管理器和事件类 Swing是Java语言提供的第二代设计工具 它以AWT为基础 提供了比AWT更多的特性和工具 用于建立更复杂的图形用户界面 现在常采用Swing组件来开发GUI应用程序 1 Swing组件的体系结构 基本组件Component 容器Container 2 Swing组件的分类 从功能上分为 容器和基本组件 容器又分为顶层容器和中间层容器 顶层容器 JFrame JDialog JApplet 用于构造图形用户界面的窗口 并容纳其它容器和组件 它们可以独立存在 中间层容器 JPanel JScrollPane JToolBar等 容纳其它组件 但是不能独立存在 需要添加到其它容器中 通常用来按功能组织基本组件 基本组件 按钮JButton 文本框JTextField等等 是图形用户界面的基本组成单位 不能独立存在 必须将其添加到一定的容器中 二 容器与布局管理器 容器用于容纳组件 布局管理器用来设置容器中各个组件的排列方式 1 顶层容器与窗口每一个Java的GUI程序都必须至少包含一个顶层容器组件作为窗口 Swing中最常用的顶层容器类 JFrame 用它创建的框架窗口可以独立存在 并且带有边框 标题及用于关闭和最大化 最小化窗口的图标按钮 创建一个框架窗口 importjavax swing publicclassJFrameDemoextendsJFrame publicJFrameDemo super JFrame窗口 setBounds 50 50 300 120 setDefaultCloseOperation EXIT ON CLOSE setVisible true publicstaticvoidmain String args JFrameDemof newJFrameDemo JFrame类常用的方法 voidsetLayout LayoutManagermanager viodadd Componentcomp voidsetBounds intx inty intwidth intheight voidsetTitle Stringtitle voidsetVisible Booleanb setDefaultCloseOperation EXIT ON CLOSE ContainergetContentPane 所列出的大部分方法也适用于其它容器和组件 2 布局管理器 布局管理器是java awt包中提供的专门用于设置容器中组件排列方式的类 常用的有FlowLayout BorderLayout和GridLayout等几种 每一种容器都有一个默认的布局管理器 通过setLayout方法可以改变容器的布局方式 流式布局举例 publicclassFlowLayDemoextendsJFrame privateJButtonmyButton1 myButton2 myButton3 myButton4 myButton5 publicFlowLayDemo FlowLayDemo类的构造方法super 流式布局 setBounds 50 50 300 120 setLayout newFlowLayout 设置窗口为流式布局setDefaultCloseOperation EXIT ON CLOSE setVisible true myButton1 newJButton 第一个按钮 生成按钮对象myButton2 newJButton 第二个按钮 myButton3 newJButton 第三个按钮 myButton4 newJButton 第四个按钮 myButton5 newJButton 第五个按钮 add myButton1 添加按钮到窗口上图7 4 a 流式布局add myButton2 add myButton3 add myButton4 add myButton5 publicstaticvoidmain String args FlowLayDemof newFlowLayDemo 边界布局举例 publicclassBorLayDemoextendsJFrame privateJButtonmyButton1 myButton2 myButton3 myButton4 myButton5 publicBorLayDemo super 边界布局 setBounds 50 50 300 120 setLayout newBorderLayout 设置窗口为边界布局setDefaultCloseOperation EXIT ON CLOSE setVisible true myButton1 newJButton 东边按钮 myButton2 newJButton 南边按钮 myButton3 newJButton 西边按钮 myButton4 newJButton 北边按钮 myButton5 newJButton 中间按钮 add East myButton1 添加按钮到窗口指定方位add South myButton2 add West myButton3 add North myButton4 add Center myButton5 publicstaticvoidmain String args BorLayDemof newBorLayDemo 网格布局举例 publicclassGridLayDemoextendsJFrame privateStringnames 按钮1 按钮2 按钮3 按钮4 按钮5 按钮6 publicGridLayDemo super 网格布局 setBounds 50 50 300 120 setLayout newGridLayout 3 3 设置三行三列网格布局setDefaultCloseOperation EXIT ON CLOSE setVisible true for inti 0 i names length i add newJButton names i 依次添加各个按钮 publicstaticvoidmain String args GridLayDemof newGridLayDemo 一 常用Swing组件 1 JLabel 标签标签用于在窗口界面上显示一行提示性或说明性的文字 标签只能显示信息 不能用于输入 JLabel类比较常用的方法有 StringgetText 获取标签上的文字voidsetText Stringtext 设置标签显示的文字为textvoidsetFont Fontf 设置标签文字的字体 一 常用Swing组件 2 JButton 按钮按钮是图形用户界面中最常见的组件 用来控制程序运行的方向 用户单击按钮时会产生ActionEvent事件 计算机将相应地执行一系列命令完成一定功能 JButton类比较常用的方法有 voidsetText Stringtext 设置按钮上的标识文字为textStringgetText 获得按钮上的标识文字 一 常用Swing组件 3 JTextField 文本框文本框是一个单行文本编辑框 用于接收用户输入的一行文字 也可以显示一行文字 JTextField类比较常用的方法有 StringgetText 获得文本框中的文本内容voidsetText Stringtext 设置文本框的文本内容 一 常用Swing组件 4 JTextArea 文本区文本区是一个多行文本编辑框 用于接收用户输入的多行文字 也可以显示多行文字 当文本区的内容装满时不会自动产生滚动条 需要将文本区组件添加到JScrollPane 滚动面板 上才能实现滚动条效果 JTextArea类具有上面列出的JTextField的相同方法 另外其比较常用的方法还有 StringgetSelected 获取被选中的文本voidappend Stringtext 在文本区尾部添加文本text 一 常用Swing组件 5 JRadioButton 单选按钮单选按钮只有 选中 和 未选中 两种状态 通常用一组单选按钮实现 多选一 的功能 在java中必须使用按钮组类 javax swing ButtonGroup 实现将多个单选按钮位于同一组中 注意 ButtonGroup仅仅是一个逻辑上的组件 在Palette组件板上并不存在该组件 因此需要自行定义ButtonGroup类的对象 并调用该类的add 方法将多个JRadioButton对象一一添加到ButtonGroup类对象中 JRadioBunon类比较常用的方法有 voidsetSelected booleanb 设置一个单选按钮的状态 b为true表明选中voidsetText Stringtext 设置单选按钮上显示的文字booleanisSelected 返回按钮的状态 如果是选中的则返回true 否则返回false 一 常用Swing组件 6 JCheckBox 复选框复选框也有 选中 和 未选中 两种状态 通常用一组复选框提供一组选项供用户选择 与单选按钮不同的是 在一组复选框中 可以同时选中多个复选框 也可以不选中任何一个复选框 JCheckBox类比较常用的方法基本上与JRadioButton类的相同 一 常用Swing组件 7 JList 列表框列表框能够容纳并显示一组选项 供用户从中选择一项或多项 但不能对其进行编辑 与文本区相似 列表框中的内容增多时不会自动产生滚动条 也需要通过JScrollPane 滚动面板 才能实现滚动条效果 JList类比较常用的方法有 JList 创建一个没有选项的列表框JList Vectorvect 创建一个列表框 其中的选项由向量表vect决定JList Objectitems 创建一个列表框 其中的选项由对象数组items决定voidsetSelectionMode intselectionMode 设置列表框支持单选还是多选voidsetVisibleRowCount intvisibleRowCount 设置列表框中可显示的行数ObjectgetSelectedValue 获取被选中项的内容intgetSelectedIndex inti 获取被选中项的序号 从0开始 没有选中时值为 1voidsetListData VectorlistData 设置列表框中的选项 参数是一个向量表 一 常用Swing组件 8 JComboBox 组合框组合框是向用户提供多种选项的组件 其通常的显示形式是右边带有下拉箭头的文本框 可以在其文本框中输人选项 也可以单击下拉箭头从显示的列表中进行选择 默认组合框是不能编辑的 需要通过setEditable true 设为可编辑 JComboBox类比较常用的方法有 JComboBox 建立一个无选项的组合框JComboBox Object items 创建一个组合框 其中的选项由对象数组items决定voidaddItem Objectobject 通过字符串类或其他类为组合框添加选项intgetSelectedIndex 获取被选中项的序号 从0开始 没有选中时值为 1ObjectgetSelectedItem 获得被选中项的内容 一 常用Swing组件 9 JScrollPane 滚动面板滚动面板是一个带滚动条的中间层容器 通常利用它为Swing组件中的文本区 JTextArea 列表 JLIst 等组件添加滚动条 具体操作方法 先从Palette组件板上选取一个JScrollPane组件 在设计区上画出适当大小的区域 然后再选取一个JTextArea或JLIst组件添加到该JScrollPane上 这样文本区或列表框就会带有滚动条了 一 常用Swing组件 10 JPanel 面板JPanel是 个无边框的中间层容器 使用面板的目的是为了在窗口上分层次 分区域管理各种组件 适合比较复杂的GUI 一个窗口中可以添加多个JPanel对象 JPanel类的最常用的方法是add 方法和setLayout 方法 分别用于添加组件 设置面板布局 对于开发项目布局 有专业的的可视化编程工具 前台美工负责 三 初识事件及事件处理 图形用户界面中人机交互的实现是通过组件响应各种事件来实现的 事件 通俗的讲是指在GUI程序系统中用户按需要激发的某一动作 如按钮单击 鼠标移动等事件源 事件发生的对象 如上述的按钮 鼠标事件处理 可以简单理解为当某个事件发生时需要执行的动作 语句序列 简单例子 首先要做的是为事件注册相对应的事件处理器 并制定事件 然后由事件处理器获取后进行相应的事件处理 事件监听器事件监听器是监听所触发事件的对象 其中包含有对事件发生后的事件处理操作 对于不同的事件 Java中也定义了所相应的事件监听器接口 如下是几个比较常用的事件监听器接口 ActionListener 接收操作事件的监听器接口 AdjustmentListener 接收调整事件的监听器接口 FocusListener 接收组件上的键盘焦点事件的监听器接口 InputMethodListener 接收输入方法事件的监听接口 KeyListener 用于接收键盘事件的监听接口 MouseListener 接收组件上的鼠标事件 包括按下 单击 进入或者离开 的监听器接口 MouseMotionListener 接收组件上的鼠标移动事件的监听接口 MouseWheelListener 接收组件上的鼠标滚轮事件的监听接口 TextListener 接收文本事件的监听器接口 WindowListener 接收窗口事件的监听接口 简单例子 使用监听器 首先要定义监听器类 并实现相应的监听器接口 然后要在组件上使用addXxxxListener的方式为组件添加事件监听 然后设置相应的事件处理方法 当组件中的事件触发后 就会根据所添加的事件处理方法进行事件处理 implementsActionListener ItemListenerjb1 addActionListener this c2 addItemListener this 简单例子 MyMenuTestMenuBarCalcuateDemo
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!