已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学网络教育学院Java程序设计辅导资料十一主 题:第六章 图形用户界面的AWT组件等(课件)学习时间:2014年12月8日12月14日内 容:我们这周主要学习Java程序设计这门课程的第6章关于图形用户界面的AWT组件、事件委托、Swing组件及事件等相关内容。希望通过下面的内容能使同学们对Java图形界面方面的知识有进一步的了解。知识要点:1、 Java图形用户界面的概念2、 Java图形用户界面的特点3、 AWT组件的概念4、 AWT组件的功能5、 容器、窗口、面板6、 布局管理7、 事件委托重点与难点:重点:AWT组件、Swing组件、布局管理难点:事件委托的概念及使用一、 AWT组件及其属性图形用户界面GUI使用图形方式借助菜单、编辑框、按钮等标准界面元素和键盘、鼠标操作,提供应用程序与用户进行数据交流的界面,实现人机交互。应用程序既能够显示数据,也能够获得用户输入的数据和需要执行的命令。构成图形用户界面的基本元素是组件,GUI应用程序的运行过程是事件驱动的。Java图形用户界面的组件和事件由java.awt和javax.swing包共同提供。Java.awt称为抽象窗口工具集AWT,主要包括组件、事件处理模型、图形和图像工具,布局管理器等,其中的组件通常称为AWT组件。1、AWT组件Java.awt包主要由组件类、事件类、布局类、菜单组件类等组成。组件组件是构成图形用户界面的基本成分和核心元素.组件是具有以下特性的对象:运行时可见,具有坐标位置、尺寸、字体、颜色等属性,能拥有及管理其他组件,可获得输入焦点可被操作,可响应事件等。Component组件类是一个抽象类,它是AWT组件类层次结构的根类,实际使用的组件都是Component的子类。Component类提供对组件操作的通用方法,包括:获得或设置组件位置、大小、标题文本字体、标题文本颜色、背景颜色等属性值,响应鼠标或键盘事件,组件绘图等。Component类及主要方法声明如下:public abstract class Component implements ImageObserver, MenuContainer, Serializablepublic int getWidth() /获得组件宽度public int getHeight() /获得组件高度public void setSize(int width, int height) /设置组件的宽度和高度public int getX() /返回组件位置的X坐标public int getY() /返回组件位置的Y坐标public void setLocation(int x, int y) /设置组件坐标位置,x、y指定组件左上角相对于容器的坐标位置public void setBounds(int x, int y, int width, int height) /设置组件坐标位置和宽度、高度public Color getBackground() /获得组件的背景颜色public void setBackground(Color c) /设置组件的背景颜色public Font getFont() /获得组件字体public void setFont(Font f) /设置组件字体public void setVisible(boolean b) /设置组件是否可见 容器容器是一种特殊的组件,它能容纳其他组件,在其可视区域内显示这些组件。容器中的各组件的大小和位置由容器的布局管理器进行控制。一个容器之中可以放置其他容器,使用多层容器可以表达复杂的布局。Container容器类是Component组件类的子类,部分声明如下:public class Container extends Componentpublic void setLayout(LayoutManager mgr) /设置布局管理器public Component add(Component comp) /在容器中添加组件,用于任何布局public void remove(Component comp) /从容器中移去指定组件public void removeAll() /从容器中移去所有组件窗口和面板容器有窗口和面板两种,对应有Window窗口类和Panel面板类,它们都是Container容器的子类。窗口有标题栏和关闭控制按钮,有边框,可添加菜单栏;窗口可独立存在,运行时可被移动,可改变大小。窗口是顶层容器,窗口不能包含在其他容器中。Window类声明如下:public class Window extends Container implements Accessible面板没有标题,没有边框,不可添加菜单栏;面板不能独立存在,必须包含在其他容器中。一个窗口可以包含多个面板,一个面板可以包含另一个面板。Panel类声明如下:public class Panel extends Container implements Accssiblepublic Panel() /默认FlowLayout布局public Panel(LayoutManager layout) /layout指定布局管理器框架和对话框Window窗口类的子类主要有:Frame框架和Dialog对话框。Java Application应用程序使用Frame作为主窗口,Frame带有最大化和最小化控制按钮,Frame类声明如下:public class Frame extends Window implements MenuContainerpublic Frame() public Frame(String title) /title指定框架标题public String getTile() /获取框架标题public void setTitle(String title) /设置或修改框架标题public void setResizable(boolean b) /设置框架是否可变大小,b默认true对话框不能作为应用程序的主窗口,它通常依附于一个框架,当框架关闭时,对话框也关闭。对话框界面比框架简单,没有最大化和最小化控制按钮。对话框可以被设置为模式窗口,特点是总在最前面,如果不能关闭模式对话框,则不能对其他窗口进行操作。Dialog类构造方法的参数必须声明对话框所依附的框架,声明如下:public class Dialog extends Windowpublic Dialog(Frame owner) /owner指明拥有对话框的框架public Dialog(Frame owner, String title) /title指定对话框标题public Dialog(Frame owner, boolean modal) /modal指定模式窗口,默认falsepublic Dialog(Frame owner, String title, Boolean modal)Framehe Dialog实例默认是白色背景、最小化、不可见的,调用setSize()方法设定窗口大小,调用setBackground()方法设置背景颜色,调用setVisible(true)方法使窗口可见。按钮Button按钮用于执行一种特定的操作。Button类及其声明的方法如下:public class Button extends Component implements AccessiblPublic Button(String text) /text指定按钮标题图形用户界面的应用程序运行时所产生的错误和异常,分别由java.awt包中的AWTError和AWTException类处理。二、布局管理当一个窗口中的组件比较多时,界面应该简洁整齐,布局合理。Java采用布局管理器(layoutmanager)对容器中的组件进行相对布局,当改变容器大小时,或者改变组件的大小,或者改变组件之间的相对位置,保证组件不会被遮盖并且容器没有空白区域.Java提供多种风格和特点的布局管理器,每一种布局管理器指定一种组件之间的相对位置。java.awt中的布局管理器类主要有:FlowLayout、BorderLayout和GridLayout。布局是容器类的特征,每种容器都有一种默认布局。Window窗口类的默认布局是BorderLayout,Panel面板类的默认布局是FlowLayout。如果一个容器需要改变其默认管理器,可以调用Container容器类的setLayout()方法。1、FlowLayout流布局管理器FlowLayout布局管理器提供按行布置组件方式,将组件按从左到右顺序、一行一行地排列,当一行放满时再放置到下一行。组件保持自己的尺寸,容器中一行的宽度随容器的宽度而变化。FlowLayout类的部分声明如下:public class FlowLayout implements LayoutManager, java.io.Serializablepublic static final int LEFT=0; /左对齐public static final int CENTER=1; /居中public static final int RIGHT=2; /右对齐public FlowLayout() /构造方法,默认居中public FlowLayout(int align) /align参数指定对齐方式public FlowLayout(int align, int hgap, int vgap) /hgap、vgap指定组件间的水平和垂直间距2、BorderLayout边布局管理器BorderLayout布局管理器将容器划分为5各区域:东、南、西、北四条边和中间,组件占满一条边或中间部分。当改变容器大小时,四边组件的长度或宽度不变,中间组件的长度和宽度都随容器大小而变化。BorderLayout类的部分声明如下:public class BorderLayout implements LayoutManager2, java.io.Serializablepublic static final String NORTH=“North”; /注意,字符串首字母大写public static final String SOUTH=“South”;public static final String EAST=“East”;public static final String WEST=“West”;public static final String CENTER=“Center”;public BorderLayout()public BorderLayout(int hgap, int vgap)3、GridLayout网格布局管理器GridLayout布局管理器将容器划分为大小相等的若干行乘若干列的网格,组件从左到右、从上到下依次放入网格中,每个组件占满一格。组件大小随容器大小而变化。如果组件数多于网格数,Java将自动增加网格;反之,一些网格将空置。GridLayout类的部分声明如下:public class GridLayout implements LayoutManager, java.io.Serializablepublic GridLayout() /构造方法public GridLayout(int rows, int cols) /参数指定行、列public GridLayout(int rows, int cols, int hgap, int vgap) 三、事件委托事件:用户对程序的某一种功能性操作。 Java中的事件主要有两种:组件类事件componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintEvent、MouseEvent共六大类。它们均是当组件的状态发生变化时产生。动作类事件ActionEvent、TextEvent、AdjustmentEvent、ItemEvent共四类。Java中的事件类都包含在JDK的 Java.awt.event包中。事件编程:用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。事件委托授权处理模型JDK1.1以上版本实现了事件委托授权处理模型的机制。1、事件源:产出事件的组件。2、监听器:对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类(它们可以分别放在不同的程序中)加以编程实现。3、事件处理机制:AWT组件自身不编程处理相应的事件,面是交由事件监听器(它可以是组件所在的容器类或另外的Java程序类,只要它们实现了相关的事件监听器接口即可)处理(事件授权处理模型)。4、事件处理的包:java.awt.event包,它提供AWT事件所需的类和接口。ActionEvent类对应ActionListener接口;MouseEvent类对应MouseMotionListener接口和MouseListener接口;WindonEvent类对应WindonListener接口-即发生了XXXEvent类型的事件,那么处理该事件的接口为XXXListener);它们的父类为EventObject类。各个事件类的说明:EventObject:所有事件类的超类。最重要的方法- getSource(),返回产生某事件的对象。四、Swing组件及事件Swing库是AWT库的扩展,提供了比AWT更多的特性和工具,用于建立更复杂的图形用户界面。Java建议用Swing组件代替AWT组件。AWT组件通常称为重型组件,它在运行时需要一个与平台相关的本地组件为之服务;而Swing组件则不直接使用本地组件,通常称为轻型组件。1、Swing组件关系概述javax.swing包提供了许多接口、类和组件,主要类及组件类的继承关系。框架javax.swing.JFrame继承自java.awt.Frame,对话框javax.swing.JDialog继承自java.awt.Dialog,这两个组件仍然是重型组件;其他Swing组件都是javax.swing.JComponent的子类,JComponent继承自AWT的容器类java.awt.Container,所以Swing组件都是容器。JComponent类声明以下方法,设置组件的文本颜色:public void setForeground(Color color) /设置文本颜色2、窗口组件基于Swing组件的图形用户界面,采用JFrame框架作为主窗口。JFrame和JDialog的用法类似于Frame和Dialog,主要有以下两点差别。内容窗格JFrame和JDialog中容纳组件的容器是内容窗格,需要调用以下方法返回内容窗格:public Container getContentPane()窗口关闭方式JFrame和JDialog增加以下setDefaultCloseOperation(int)方法,指定窗口关闭事件的处理方式。public void setDefaultCloseOperation(int operation)3、文本显示和编辑组件JLabel标签是文本显示组件,与java.awt.Label用法相同,增加的功能是,能容纳一个图标ImageIcon。文本编辑组件主要有:JTextField、JPasswordField和JTextArea。文本行JTextField是单行文本编辑框,用法与java.awt.TextField相同,增加以下方法:public void setHorizontalAlignment(int alignment)文本区JTextArea文本区是一个显示纯文本的多行文本编辑框,它的基本操作与文本行类似,但增加了接受换行符的多行控制。文本区JTextArea类及其方法声明如下:Public class JTextArea JTextComponentpublic JTextArea()public JTextArea(String text)public JTextArea(int rows, int columns)public JTextArea(String text, int rows, int columns)public JTextArea(String str)public JTextArea(String str, int pos)Swing文本编辑事件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产项目设计合同模板
- 2024药品采购合同
- 工业用油购销合同
- 2024年度高铁站场CFG桩基础施工合同
- 2024年图书馆公共卫生间改造升级合同
- 商铺定金租赁合同样本
- 担保合同书写格式
- 2024总价合同和可调价合同简介
- 2024股权融资协议书样本
- 2024签购房合同需要什么
- BOD5检测原始记录
- 幼儿园班级区域环境创设课件
- Q∕GDW 12151-2021 采用对接装置的输电线路流动式起重机组塔施工工艺导则
- 《叙事式心理治疗》精品PPT
- 2022中国听障用户数字产品体验调研报告
- ADAScog(老年痴呆量表—认知)
- 热污染评价及标准
- 脱硫检修方案
- 乐理试题(音程-三和弦)
- 三资系统操作手册
- 绵阳市物业服务收费管理实施细则
评论
0/150
提交评论