Java语言程序设计PPT课件_第1页
Java语言程序设计PPT课件_第2页
Java语言程序设计PPT课件_第3页
Java语言程序设计PPT课件_第4页
Java语言程序设计PPT课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、Java语言程序设计-Java GUI教师:段鹏飞知识点1、JAVA GUI简介简介2、图形界面组件、图形界面组件3、容器和布局、容器和布局4、事件处理、事件处理1、JAVA GUI简介 图形用户界面(Graphics User Interface,GUI)是程序与用户交互的方式,利用它系统可以接收用户的输入并向用户输出程序运行的结果。 1、JAVA GUI简介多行文本框组件单选按钮单行文本框标签复选按钮按钮组合框窗口面板容器1、JAVA GUI简介Frame(窗口)Panel(面板1)Panel(面板2)ButtonButton文本框1、JAVA GUI简介:GUI控件分类 组件(Compo

2、nent) 基本图形元素,如按钮,文本框,文本域,多选按钮,单选按钮等 容器(Container) 可以容纳组件的区域,在容器上可以添加别的组件。如Frame, Window等 注意:容器中可以容纳组件,也可以容纳比它“容量级别 小”的容器 1、JAVA GUI简介:GUI简单程序1、JAVA GUI简介: GUI支持包 java.awt包:java.awt包中提供了大量的进行GUI设计所使用的类和接口,是Java语言进行GUI程序设计的基础。 javax.swing包:swing是由100%纯Java实现的,没有本地代码,不依赖操作系统的支持,它的出现使得Java的图形用户界面上了一个台阶。

3、1、JAVA GUI简介: Swing的类层次结构ObjectComponentJFrameContainerWindowFrameDialogJDialogJTextJComboBoxJLabelJListJMenuBarJOptionPaneJPanelJScrollBarAbstractButtonJToggleButtonJMenuItemJButtonJCheckBoxJRadioButtonJComponentJMenuAppletJAppletSwing组件都是AWT的Container类的直接子类或间接子类。 1、JAVA GUI简介: GUI编程步骤 创建应用程序框架,选定顶

4、层容器 在顶层容器中创建中间容器,将组件加入中间容器;或者将组件直接加入顶层容器中,设定控件属性 选择布局管理器,进行合理布局 实现事件处理程序,与用户交互 2、图形界面组件 Button(按钮类)Button b = new Button(按钮); Label(标签类)Label l = new Label(标签) ; TextField(单行文本框类)TextField= new TextField(单行文本框); TextArea(多行文本框类)TextArea = new TextArea(多行文本框); Checkbox(复选框类)CheckBox = new CheckBox(复选

5、框);2、添加GUI组件2 2、图形界面组件 java.awt包中的主要类 以及组件类的继承关系颜颜色色类类字字体体类类组组件件类类布布局局类类复选复选框组框组类类图图像像类类事事件件类类菜单菜单组件组件类类图图形形类类java.lang.Object标标签签类类按按钮钮类类容容器器类类复选复选框框类类滚动滚动条条类类选择选择框框类类列表列表框框类类文本文本组件组件类类画画布布类类面板类面板类窗口类窗口类框架类框架类对话框类对话框类文件对话框类文件对话框类java.applet.Applet组件组件(component)是具有一定功能、能够产生事件的是具有一定功能、能够产生事件的 部件的统称。

6、部件的统称。例如:窗口,以及窗口上的文本框、按钮、例如:窗口,以及窗口上的文本框、按钮、 复选框、列表框、菜单等都是组件复选框、列表框、菜单等都是组件组件类是组件类是Object的子类,是一个抽象类,是所有组件的子类,是一个抽象类,是所有组件的超类,它为其他子类定义了许多共同的属性,的超类,它为其他子类定义了许多共同的属性,如:位置、大小、字体、颜色等。如:位置、大小、字体、颜色等。 容器容器(container)是一组特殊的组件是一组特殊的组件,它能容纳其他组件它能容纳其他组件容器类是组件类的子类容器类是组件类的子类由于容器是组件,所以容器之上还可以再放置其他容由于容器是组件,所以容器之上还

7、可以再放置其他容器,这样就可以创建出复杂的界面器,这样就可以创建出复杂的界面Java中有两种主要容器:窗口和面板中有两种主要容器:窗口和面板窗口窗口(Window)是可以自由移动的,不依赖其他容器是可以自由移动的,不依赖其他容器而存在的容器而存在的容器面板面板(Panel)与窗口类似,但不能独立存在,必须包含与窗口类似,但不能独立存在,必须包含在另外一个容器里,如包含在在另外一个容器里,如包含在Frame或或Web中中窗口窗口(Window)有两个主要组件:框架和对话框有两个主要组件:框架和对话框在在Java应用程序中,一般独立应用程序主要使用框架应用程序中,一般独立应用程序主要使用框架 (F

8、rame)做容器,在框架上通过放置面板做容器,在框架上通过放置面板(Panel)来控制图形界面的布局。来控制图形界面的布局。如果应用到浏览器中,则主要使用面板的一个子类如果应用到浏览器中,则主要使用面板的一个子类Applet来做容器,它能嵌入浏览器运行。来做容器,它能嵌入浏览器运行。 java.awt包中的主要类 以及组件类的继承关系颜颜色色类类字字体体类类组组件件类类布布局局类类复选复选框组框组类类图图像像类类事事件件类类菜单菜单组件组件类类图图形形类类java.lang.Object标标签签类类按按钮钮类类容容器器类类复选复选框框类类滚动滚动条条类类选择选择框框类类列表列表框框类类文本文本

9、组件组件类类画画布布类类面板类面板类窗口类窗口类框架类框架类对话框类对话框类文件对话框类文件对话框类java.applet.AppletPanelFrameContainerComponent3、容器和布局:面板(Panel)类 创建面板的一般步骤为:(1)创建面板对象: Panel myPanel=new Panel();(2)将面板添加到容器中:容器对象.add(myPanel);(3)把组件放置到面板上:myPanel.add(组件);3、面板Panel简单示例 3、布局策略Java在java.awt包中定义了5种布局,它们分别是:FlowLayout、BorderLayout、Card

10、Layout、GridLayout、GridBagLayout。设置布局的格式为: 容器对象.setLayout(布局策略);3、浮动布局FlowLayout 浮动布局是按照组件的顺序,用add方法将组件从左至右在一行排列,一行放不下时就自动换行。这是系统的默认的布局方式。 其设置的方法为:setLayout(new FlowLayout(); 3 3、布局管理器NCEPUimport java.awt.*;public class MyFlow private Frame f; private Button b1, b2, b3;public static void main (String

11、 args)MyFlow mf = new MyFlow ( ); mf. go ( ); public void go ( ) f = new Frame ( Flow Layout );f. setLayout (new FlowLayout ( ) );b1 = new Button ( OK );b2 = new Button ( Open );b3 = new Button ( Close );f. add ( b1 ); f. add ( b2 ); f. add ( b3 );f. setSize ( 100, 100 );f. setVisible ( true ); 输出为:

12、3、边界布局BorderLayoutBorderLayout类把容器划分成5个区域,分别标记为“North”、“South”、“West”、“East”和“Center”。 其设置的方法为:setLayout(new BorderLayout();中北西南东3、边界布局示例 3、网格布局GridLayoutGridLayout类以矩形网格形式对容器中的组件进行布局。容器被分成大小相等的单元格,单元格的大小由最大的构件所决定,用add方法将组件一行一行地从左至右放置到布局的每个单元格中。其设置的方法为:setLayout(new GridLayout(int row, int cols);row

13、是网格的行数,cols是网格的列数。 这种布局包含几个卡片,在某一时刻只有一个卡片是可见的,而且第一个卡片显示的内容可用自己的布局来管理。 卡片布局设置的方法为: setLayout(new CardLayout();3、卡片布局CardLayout 菜单组件 只有Frame能添加菜单,不能将菜单组件直接添加到一般的容器中 AWT提供的菜单机制是这样的:一个容器包含一个菜单条(MenuBar),一个菜单条中包含多个菜单(Menu),一个菜单中包含多个菜单或菜单项(MenuItem) 和菜单相关的组件有四个:MenuBar, Menu, MenuItem, CheckboxMenuItem. 3

14、、菜单和对话框3、菜单条(MenuBar) 一个菜单条组件是一个水平容器,并作为所有菜单树的根。 一个窗体中只可以显示一个菜单条。 例如: Frame fr = new Frame(); MenuBar mb = new MenuBar(); f.setMenuBar(mb)3、菜单(Menu) 菜单组件提供了一个基本的下拉式菜单,它可以加入到一个菜单条或者另一个菜单中。 例如: MenuBar mb = new MenuBar(); Menu mu1 = new Menu(“File”); Menu mu2 = new Menu(“Edit”); mb.add(mu1); mb.add(mu

15、2); f.setMenuBar(mb);3、菜单项(MenuItem) 菜单项组件通常被加入到菜单中,以构成一个完整的菜单。 例如: Menu mu = new Menu(“File”); MenuItem mi1 = new MenuItem(“New”); MenuItem mi2 = new MenuItem(“Load”); mu.add(mi1); mu.add(mi2);4、按钮事件class ClassName implements ActionListener void fun() btn.addActionListener(this); public abstract vo

16、id actionPerformed(ActionEvent e) 4、设计处理事件的类时,就要实现这个接口4、事件概述 事件的定义 日常生活:电话铃响、门铃响、汽车启动 计算机:鼠标点击、键盘按键、窗口关闭、窗口移动、 窗口最大化、拖动、鼠标经过等4、交互处理方式分析处理“人-机”交互的两种方式1. 查询处理方式uC等传统语言的方式u主要用于Dos等命令行环境下程序设计2. 事件处理机制uJava、Visual C+的方式u主要用于Windows程序和多线程程序设计 两种处理方式进行比较的内容如何“查询”软件设计人员的需要完成的工作4、老板来了 员工如何实现老板来公司的监控?4、老板来了公司

17、 打电话公司前台确定好电话内容通知员工 拨号 给老板检查 来公司老板4、事件处理 事件处理过程GUI界面 创建Java运行时系统事件对象事件处理(监听)对象 传递 回馈 触发事件源4、事件概述 事件的构成 以“用户点击按钮”事件来说明事件三要素: GUI界面事件源button 创建Java运行时系统事件对象事件处理(监听)对象 传递 回馈 点击4、两种方式比较 - 如何“查询” 看护小宝宝“换尿布”的方式 传统方法:每过一会就摸摸. 如果尿布湿了,换新的 新方法:尿布自动报警器(湿敏电阻)比 较 工作方式:由 “监测-处理” 变为 “提醒告知” 新方法优点:提高并发度、效率 新方法缺点:提高了

18、复杂度 (价格.)程序设计的思路:查询 - 报告4、事件机制的几个概念 事 件 事件源产生的交互内容,如“按下鼠标” (ActionEvent) 在 java.awt.event包中定义的类 事件监听器 接收事件并进行处理,由程序员编写(ActionListener) 对应处理所监听事件源产生的事件 监听器接口 编写“事件监听器”的“规定” “抽象方法” 必须在监听器类中实现这些方法完成事件处理 监听器注册 将事件监听器对象绑定到事件源,进行监听 事件源 描述人机交互中事件的来源(EventSource) 通常是Java图形包中组件4、常用事件类事件类型典型触发动作ActionEvent按钮、

19、列表双击、单击菜单项目KeyEvent键盘的输入MouseEvent鼠标拖动、移动、单击、按下、释放或者进入、退出组件的事件ComponentEvent组件被隐藏、移动、尺寸调整或变为不可见的事件FocusEvent组件获得或失去焦点的事件InputEvent复选框和列表项单击、控件的选择和可选菜单项的选择事件TextEvent文本区域或者文本区域的值的改动WindowEvent窗口激活、失去活动窗口、最小化、最小化、打开、关闭或者退出的事件4、常用事件监听器类事件类型典型动作ActionListener处理按钮、列表双击、单击菜单项目KeyListener处理键盘的输入MouseListen

20、er处理鼠标拖动、移动、单击、按下、释放或者进入、退出组件的事件ComponetListener处理组件被隐藏、移动、尺寸调整或者变为不可见的事件FocusListener处理组件获得或失去焦点的事件TextListener处理文本区域或者文本区域的值的改动WindowListener处理窗口激活、失去活动窗口、最小化、最小化、打开、关闭或者退出的事件4、内部类事件程序实现4、Java中的内部类 写法是否正确? 内部类是附属于外部类的实例的,它们只能与外部类的实例一起存在。 内部类的方法可以直接访问外部类的私有变量和方法4、匿名类的方式实现事件处理 匿名类的定义 顾名思义就是未被命名的类 匿名类的特征 在程序中只使用(即:被实例化)一次 4、匿名类 4、事件类的继承层次关系详细内容见软件包 java.awt.eventp“事件”的编程实现: 基于Java封装的系统类4、事件监听器 如何编程实现监听器 ?1. 每一个事件类都有唯一的事件处理方法接口,例如,对于处理鼠标事件“”类的对应接口为“”2. 每一个接口中都已经规定了一个空的抽象方法在该方法中编码实现自己想做的的工作

温馨提示

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

评论

0/150

提交评论