版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA图形用户界面的设计与实现 第第7章章 图形用户界面的设计与实现图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 7.1 图形用户界面(图形用户界面(GUI)概述)概述 界面设计的主要任务: (1)创建组成界面的各成分和元素,指定它们的属性 和位置关系; (2)定义界面事件和各元素对不同事件的响应,实现 界面与用户的交互功能; 生成界面的类库:java.awt (abstract window toolkit) 抽象:操作定义在一个虚拟的窗口中进行,实现跨平台; JAVA图形用户界面的设计与实现 界面的元素和成分 v容器 v控制组件 v用户自定义成分 JAVA图形用户界面的设计
2、与实现 容 器(1) v容器(容器(container):):组织其他界面成分和元素 的单元,用来存放别的组件。 v有三种类型的容器:Window、Panel和 ScrollPane。 Container Panel Window ScrollPane Applet Dialog Frame JAVA图形用户界面的设计与实现 容 器(2): Frame容器 vWindow是能独立存在的容器,Frame是它的子类。Frame 是有边框容器,通常用作最外层容器,不能被其他容器包 含。 vFrame方法: vFrame(String title); vadd():在Frame中加入其他组件。 vpa
3、ck()方法会自动确定Frame的大小,确保Frame容器中 的组件都会有与布局相适应的合理大小。 vsetVisible(true):使Frame成为可见。Frame被创建后, 它是不可见的。 1.例子:见2007ch7srcSimpleFrame.java JAVA图形用户界面的设计与实现 容 器(3): Panel容器 特点: 1)没有边框,不能被移动、缩放或关闭。 2)不能作为最外层图形界面的容器,不能单独存在 只能用做容器组件加入其他容器。 3)通常用于层次化界面组件管理。 P260:例 7-20 TestPanel . java v例子:ch7srcMyFrame.java JAV
4、A图形用户界面的设计与实现 组件组件:图形用户界面的最小单元,用来完成与用户的交互; 用户界面标准化的结果,例如:标签、文本框、按钮、菜单 等。 使用组件的步骤: 1)创建组件类的对象,指定其属性; 2)使用某种布局策略; 3)将组件对象注册给对应的事件监听器,覆盖事件处理方 法,实现与用户交互的功能; 组组 件件 JAVA图形用户界面的设计与实现 用户自定义成分用户自定义成分:如绘制几何图形、使用标 志图案等。 通常只能起到装饰、美化的作用,不能响应 用户的动作,不具有交互功能。 用户自定义成分用户自定义成分 JAVA图形用户界面的设计与实现 7.2 绘制图形绘制图形 利用 Graphics
5、 类可以绘制文字及直线、 矩形、多边形、圆和椭圆等各种图形。 对于Application程序:创建 Canvas 对象, 并将它加入界面容器中。 Applet 类和 Canvas 类都有一个 paint ( ) 方法,系统会自动创建一个 Graphics 类的实 例作为其参数,实现各种图形绘制; JAVA图形用户界面的设计与实现 Graphics 类的常用绘图方法类的常用绘图方法 例7-1 DrawFigures.java (p185) drawLine ( int x1, int y1, int x2, int y2 ):绘制直线 drawRect ( int x, int y, int w
6、idth, int height ) :绘制矩形 fillRect ( int x, int y, int width, int height ) :填充矩形 JAVA图形用户界面的设计与实现 设置字体设置字体Font类类 显示文字: Graphics 类的 drawString ( ) 方法,在 屏幕的指定位置显示字符串。 Font 类:表示一种字体,包含字体类型、字型和字 号。如: Font fnt = new Font (“TimesRoman”, Font .BOLD, 12 ); Font 类有三种字体:Font . PLAIN, Font .BOLD, Font . ITALIC
7、。 使用字体:Graphics 类的 setFont ( ) 方法 如:g . setFont ( fnt ) ;btn.setFont(fnt); JAVA图形用户界面的设计与实现 例7-2AvailableFonts . Java GraphicsEnviroment类: The GraphicsEnvironment class describes the collection of GraphicsDevice objects and Font objects available to a Java(tm) application on a particular platform. J
8、AVA图形用户界面的设计与实现 设置颜色设置颜色Color类类 Color 类对象: 控制文字或图形的颜色; 构造函数: public Color (int Red, int Green, int Blue);各参数 取值范围:0255 public Color (float Red, float Green, float Blue);参 数取值范围:0.01.0 public Color (int RGB) ;参数的07位为红色分量, 815位为绿色分量,1623位为蓝色分量 例: Color blueColor = new Color (0, 0, 255); / 问这是什 么颜色? JA
9、VA图形用户界面的设计与实现 颜色设置:Graphics 类的 setColor ( ) 方法 v使用自定义的颜色: Color blueColor = new Color (0, 0, 255); g. setColor ( blueColor ) ; v使用 Color 类的颜色常量: g. setColor ( Color. black ) ; Color 类定义了 13 个静态颜色常量,包括 : black (0, 0 ,0 )red (255,0,0)green (0,255,0) blue (0, 0,255) 等。 JAVA图形用户界面的设计与实现 对 GUI 组件,可用下列方法
10、设置或获取组件的 背景色和前景色: public void setBackground ( Color c) ; public Color getBackground ( ) ; public void setForeground ( Color c) ; public Color getForeground ( ) ; 例7-3 UseColor. Java 问题:HTML文件中的参数是以什么形式、如何 传入字节码的? JAVA图形用户界面的设计与实现 显示图像显示图像 一、获取图像:一、获取图像: Applet 类的 getImage ( ); public Image getImage
11、( URL url, String name) 该方法将指定图像文件的内容返回到 Image 对象。 方法中的参数 url 是一个 URL (统一资源定位器) 地址,也就是图像所在网址。name 是图像文件名。 Java 支持的图像文件格式包括bmp,gif,jpeg 等。 JAVA图形用户界面的设计与实现 二、绘制图像:二、绘制图像: drawImage( Image img, int x, int y, ImageObserver observer ) 有4个 参数:图像的 Image 对象,显示图像的左 上角 x、y 坐标,显示图像的容器对象。如: g.drawImage (image,
12、10,10,this); 例7-4DrawMyImage.java JAVA图形用户界面的设计与实现 实现动画效果实现动画效果 制作步骤:1)构造或获取动画的各帧; 2)绘制各帧; 动画的各帧可以用绘图的方法绘制,也可在给定关键帧 的情况下,采用插值方法生成,还可以用 getImage ( ) 方法获取文件中的 gif 或 jpg 格式图像。 例 7-5:其中的 paint ( ) 方法一次显示一幅图像,并调用 Thread . sleep ( ) 方法使程序休眠片刻,从而前一副图 像在屏幕上暂留,再显示下一幅图像,形成动画。 JAVA图形用户界面的设计与实现 7.3 Java 的标准组件与事
13、件处理的标准组件与事件处理 v每一个可以触发事件的组件被当作事件源。 v每一个事件都对应专门的监听者,监听者用 来接收和处理这种事件。 v如果一个事件源注册了对应的监听者,那么 这种事件就会被监听者接收和处理。这种模 式称为“委托模型”。 JAVA图形用户界面的设计与实现 Java 的事件处理机制:的事件处理机制:委托事件模型 事件源(可能产生事件的组件) 注册:btn. addActionListener(监听者对象); ActionEvent 事件 监听者(负责监听并处理事件的对象) 实现接口:public void actionPerformed (ActionEvent e); 触发事
14、件 调用并传递参数 注册 图7-5 委托事件模型 JAVA图形用户界面的设计与实现 事件与监听者接口 要注意以下问题: v有哪些事件源,可能发生什么事件? v将事件源注册给哪个监听者? v监听接口包含什么方法?各代表对什么事件 的处理? v举例:见P215表格 JAVA图形用户界面的设计与实现 vAWT的事件处理模型: v监听者对象是实现监听者接口的类的实例。 v事件源在事件发生时把事件对象发送给注册 的监听者。 v监听者对象会使用事件对象中的信息来决定 如何响应事件。 v注册监听者对象是通过调用事件源 的.addXXXListener()来实现的。如下: eventSourceObject.
15、addEventListener(event ListenerObject); JAVA图形用户界面的设计与实现 v并非每个事件类都只对应一个事件,例如: KeyEvent类对应 KEY_PRESSED,KEY_RELEASED,KEY_TY PED三个具体的事件。 vKeyEvent类的getID()可以返回不同的常量, 以此来判断具体的事件类型。 JAVA图形用户界面的设计与实现 v以 JButton为例,关心的事件就是按钮被按为例,关心的事件就是按钮被按 下,想注册该事件,就需要调用下,想注册该事件,就需要调用 JButton的的 addActionListener( ) 方法,该方法带
16、一个 参数实现 ActionListener接口的对象, ActionListener接口只包含一个 actionPerformed( )方法,所以,将实现的 代码与JButton联系起来的方法就是在类里联系起来的方法就是在类里 实现实现ActionListener接口接口,而且将该类的对象 用JButton 的addActionListener( )方法方法注 册。这样 actionPerformed( )方法将在按钮 被按下时被回调。 JAVA图形用户界面的设计与实现 事件处理 v用内部类实现监听接口:见例子 ButtonCounter.java v将容器类实现监听接口:见例子 Frame
17、Counter.java v定义专门的外部类实现监听接口:见例子 OuterCounter.java v采用事件适配器:见例子AdapterCounter.java, 注意适配器是类,不是接口。 JAVA图形用户界面的设计与实现 7.4 GUI 标准组件概述标准组件概述 Component Button 组件名 Canvas TextArea TextField List Scrollbar Label TextComponent Checkbox Choice Container Dialog Frame Window AppletPanel ScrollPane 容器 图7-7 AWT 组
18、件层次关系图组件层次关系图 JAVA图形用户界面的设计与实现 Component 类的常用方法类的常用方法 public void add (PopupMenu popup):在组件上加上一个弹出菜单。 public Color getBackground ( ): 获得组件的背景色。 public Font getFont ( ):获得组件使用的字体。 public Color getForeground ( ):获得组件的前景色。 public Graphics getGraphics( ):获得绘图用的 Graphics 对象。 public void repaint ( int x,
19、int y, int width, int height ):以指点的坐标点 为左上角,重画组件中指点宽、高的区域。 public void setBackgound (Color c):设置组件的背景色。 public void setEnable (boolean b):设置组件的使能状态。 public void setFont (Font f ):设置组件的字体。 public void setSize (int width, int height ):设置组件大小。 public void setVisible (boolean b):设置组件是否可见的属性。 public void
20、 setForeground ( Color c):设置组件的前景色。 public void requestFocus ( ) :使组件获得注意的焦点。 JAVA图形用户界面的设计与实现 标签、按钮和动作事件标签、按钮和动作事件 1.标签(标签(Label) 标签类 Label 的对象用来显示文本信息。它不是事 件源,不能引发事件。常用方法是 getText ( ) 和 setText (String s)。 v按钮(按钮(Button) Button 类的常用方法是 getLabel ( ) 和 setLabel (String s)。 按钮可以引发动作事件,如 ActionEvent。为
21、此, 对应的监听者必须实现 ActionListener 接口,并实 现相应的 actionPerFormed (ActionEvent e) 方法。 JAVA图形用户界面的设计与实现 v动作事件(动作事件(ActionEvent) ActionEvent 类只包含一个执行动作事件 ACTION_PERFORMED。可触发该事件的动作包 括: ()按钮-点击; ()列表中的某一选项-双击; ()菜单项-选择; ()文本框-回车; (5)定时器经过一定的时间(a certain amount of time has elapsed ) JAVA图形用户界面的设计与实现 区分不同的事件源区分不同的
22、事件源 v Button btn = new Button (“计算”) ; v btn.setActionCommand (“命令名”) ; v btn. addActionListener ( this ) ; v/ 接口的动作响应方法 v public void actionPerformed ( ActionEvent e) v v if (e.getActionCommand()= “命令名” ) v/ 若无第2句,则用 if (e.getActionCommand() = “计 算” ) v/ 或者用 if (e. getSource() = btn ) 1. JAVA图形用户界面
23、的设计与实现 public int getModifiers ( ):判断是否还按了Ctrl、Shift等功能 键; 该方法返回一个整数 ,可与 ActionEvent 类的静态常量 ALT_MASK, SHIFT_MASK, CTRL_MASK, META_MASK 比较,用来判断动作事件发生时,是否同时按下某个功能 键。 目的:将一个动作事件再细分成几个事件; JAVA图形用户界面的设计与实现 文本框、文本区域与文本事件文本框、文本区域与文本事件 文本域(文本域(TextField)与文本区()与文本区(TextArea) TextField 是单行文本框,TextArea 是多行文本 区
24、域。它们都是 TextComponent 的子类。 创建创建 TextArea txtArea = new TextArea (10, 45) ; / 10 行 25 列的文本区 TextField name = new TextField (“卡号”,8) ; / 初始字符串为“卡号”,可容纳 8个字符 JAVA图形用户界面的设计与实现 常用方法常用方法 父类 TextComponent 的方法 getText ( ): 获取文本信息 setText ( String text ):设置文本内容 setEditable (bollean b):指定文本是否可编辑 isEditable ( )
25、:判断文本是否可编辑 select ( int start, int end ):选择指定范围内的文本 selectAll ( ):选定全部文本 setSelectionStart (int start ) 和 setSelectionEnd (int end ):设置选定文本的起、止位置 getSelectionStart ( ) 和 getSelectionEnd ( ):获得选定文 本的起、止位置 getSelectText ( ):获取选定文本的内容 JAVA图形用户界面的设计与实现 TextField 类的特殊方法:类的特殊方法: setEchoChar (char c):设置回显字
26、符,用在不希望 如实回显的场合(如输入密码时)。 getEchoChar ( ):获取屏蔽当前文本域的回显字符。 EchoCharIsSet ( ):判断是否设置了屏蔽当前文本域 的回显字符。 TextArea 类的特殊方法:类的特殊方法: append (String s):在已有文本后面添加字符串 s insert (String s, int index):将字符串 s 插入到指定序 号处。 JAVA图形用户界面的设计与实现 (3)事件响应 v TextEvent 事件:该类包含代表文本变化(如删除或键 入字符)的事件TEXT_VALUE_CHANGED;由 TextField 和Tex
27、tArea 的父类 TextComponent 产生;要 响应这个事件,程序应实现 TextListener 接口,并实现 响应该事件的方法: public void textValueChanged (TextEvent e) ; 调用 e.getSource 可以获得引发该事件的文本域对象引 用。 ActionEvent 事件:当用户在文本域按回车键时,可由 TextField 对象产生这一事件。 JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 单、复单、复 选按钮,列表与选择事件选按钮,列表与选择事件 v选择事件(选择事件(ItemEvent) ItemEvent 类
28、包含的是代表选择项的选中状态发生变化的事 件 ITEM_STATE_CHANGED。引发这类事件的动作包 括: (1)改变列表类 List 对象选项的选择状态。 (2)改变下拉列表类 Choice 对象选项的选择状态。 (3)改变复选按钮类 Checkbox 对象的选择状态。 (4)改变检测盒菜单项 CheckboxMenuItem 对象的选择状 态。 JAVA图形用户界面的设计与实现 ItemEvent 类的主要方法 vpublic ItemSelectable getItemSelectable ( ):返 回引发选中状态变化事件的事件源,如选项或状 态变化的 List 、Choice 或
29、 Checkbox对象。 vpublic Object getItem ( ):返回引发选择状态变 化的具体选择项(指“文本”),如选中的具体的 item。 vpublic int getStateChange ( ):返回选择状态的 具体类型,其值包括 ItemEvent . SELECTED (被选中)和 ItemEvent . DESELECTED (不 选)。 JAVA图形用户界面的设计与实现 复选按钮复选按钮 (Checkbox 检测盒) (1)创建(可同时指明其文本说明标签) Checkbox bcakg = new Checkbox (“背景色”) ; (2)常用方法 getSt
30、ate ( ) 返回复选按钮的状态:选中(true) 或未选中(false)。 setState (boolean b ) 设置复选按钮的状态。 JAVA图形用户界面的设计与实现 (3)事件响应 将检测盒注册给 ItemEvent 事件监听者 ItemListener 事件源 . addItemListener ( 监听者 ) ; 实现接口方法,以响应检测盒状态变化 public void itemStateChanged ( ItemEvent e ) 在方法体中,用 e . getItemSelectable ( ) 方法获取 事件源对象引用,再调用 e.getState ( ) 方法获
31、取选择状态。 例 7-8 TestCheckbox .java JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 单选按钮组单选按钮组 ( CheckboxGroup) 单选按钮组是一组 Checkbox 的集合(每个Checkbox 对应 一种情况),用 CheckboxGroup 类的对象表示。 例如,下述语句创建一个CheckboxGroup ,三个 Checkbox 对象,并设置从属关系: v CheckboxGroup checkboxGroup1 = new CheckboxGroup(); v Checkbox checkbox1 = new Checkbox(
32、); vcheckbox1.setCheckboxGroup(checkboxGroup1); v Checkbox checkbox2 = new Checkbox(); vcheckbox2.setCheckboxGroup(checkboxGroup1); v Checkbox checkbox3 = new Checkbox(); 1.checkbox3.setCheckboxGroup(checkboxGroup1); JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 事件响应 CheckboxGroup 类是 Object 类的直接 子类,不能响应事件,但可由组中
33、的 每个 Checkbox 对象响应 itemStateChanged 类的事件。 JAVA图形用户界面的设计与实现 下拉列表下拉列表 (Choice) (1)创建 包括创建 Choice 对象和添加选项两步: size = new Choice ( ) ;/ 创建下拉列表 size .add (“10”) ;/ 添加选项 size .add (“16”) ; size .add (“20”) ; (2)常用方法 getSelectedIndex ( ):返回被选项的序号 getSelectedItem ( ):返回被选项的标签文本字符 select (int index) 、select (
34、String item)选中指定序号或文本内容的选项 add (String item) 和 insert (String item, int index):将新选项 item 加在 下拉列表的最后或指定的序号处。 remove (int index) 和 remove (String item):删除指定序号或指定标签文 本的选项。 removeAll ( ):删除所有选项 JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 列表(列表(List ) (1) 创建 列表可以实现“多选多”(复选)。构造函数包 括: public List ( ) ; public List (
35、 int rows ) ; public List ( int rows, boolean multipleMode ) ; 其中,rows 为可同时显示的选项(Item)个数, multipleMode 指明是否允许复选。缺省时不允 许复选。 创建列表时,也要同时添加选项: List MyList = new List (5, true); MyList.add(“北京”); MyList.add(“上海”); JAVA图形用户界面的设计与实现 (2)常用方法 getSelectedItem ( ):返回被选项目的文本。 getSelectedItems ( ) :返回包含所有被选项目的字符
36、串 数组。 getSelectedIndex ( ) :返回被选项目的序号。 getSelectedIndexs ( ) :返回由所有被选项目的序号组成 的整型数组。 select (int index ) 和 deselect (int index ):选中或不选指定 序号的选项。 add (String item ):将标签为 item 的项目加至列表的最后。 add (String item, int index ) :将标签为 item 的项目加至指 定序号处。 remove (int index ) :删除指定序号处的选项。 JAVA图形用户界面的设计与实现 (3)事件响应 产生的事
37、件: itemStateChanged:单单击某一选项; actionPerformed:双双击某一选项; 要响应这两种事件,必须将列表注册给相应的事件 监听者。 list1.addItemListener(new Applet1_list1_itemAdapter(this); list1.addActionListener(new Applet1_list1_actionAdapter(this); 并实现相应的接口及方法。 例 7-11TestList. java JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 7.7 设计事件处理专用类 7.7.1 内部类 v外部类
38、可以使用自己的内部类,比如创建内 部类的对象并调用其方法。 v内部类能访问外部类中定义的所有属性和方 法。 JAVA图形用户界面的设计与实现 7.7.2 用内部类实现事件处理 v例子见前面。 JAVA图形用户界面的设计与实现 7.7.3 焦点事件 vFocusEvent类包含两个具体事件: FOCUS_GAINED,FOCUS_LOST。 vFocusListener监听者接口定义了两个方法:public void focusGained(FocusEvent e) public void focudLosted(FocusEvent e) 组件与焦点有关的方法: vrequestFocus(
39、) vhasFocus() JAVA图形用户界面的设计与实现 滚动条与调整事件滚动条与调整事件 v调整事件调整事件 ( AdjustmentEvent ) AdjustmentEvent 类只包含一个表示 GUI 组件发生连续变化的事件 ADJUSTMENT_VALUE_CANGED,当用户操纵滚动条 ( Scrollbar ) 或其子类组件,改变滑块位置时,引发这一事件。 AdjustmentEvent 类的主要方法: vpublic Adjustable getAdjustable ( ):返回引发状态变化的事件源。 vpublic int getAdjustmentType ( ):返回
40、事件的状态变化类型,其值 包括:TRACK (拖动滑块)、UNIT_DECREMENT(点击下三角 按钮,引发最小单位下移)、 UNIT_INCREMENT (点击上三角 按钮,引发最小单位上移)。 vpublic int getValue ( ):返回状态变化后滑块对应的当前数值。 JAVA图形用户界面的设计与实现 v滚动条滚动条 ( Scrollbar ) (1)创建 Scrollbar mySlider = new Scrollbar (Scrollbar. HORIZONTAL, 50, 1, 0, 100); 其中,参数 1 指明滚动条方向, Scrollbar. HORIZONTA
41、L 为水平方向, Scrollbar . VERTICAL 为垂直方向。参数 2 为滑块的初始位置,整 型量。参数 3 为滑块的大小。参数 4、5 分别为滑块代表的最小和 最大数据。 (2)常用方法 setUnitIncrement ( int unit ):指定单位单位增量,即单击两端的三角按钮 时的数据改变。 setBlockIncrement ( int blk ) :指定块块增量,即单击滚动槽时的数据改 变。 getValue ( ):返回当前滑块位置代表的整数值。 JAVA图形用户界面的设计与实现 例 7-12TestSlider. Java JAVA图形用户界面的设计与实现 画布与
42、鼠标、键盘事件画布与鼠标、键盘事件 v鼠标事件鼠标事件 ( MouseEvent ) MouseEvent 类包含 7 个鼠标事件: vMOUSE_CLICKED:鼠标点击事件 vMOUSE_DRAGGED :鼠标拖动事件 vMOUSE_ENTERED :鼠标进入事件 vMOUSE_EXITED :鼠标离开事件 vMOUSE_MOVED :鼠标移动事件 vMOUSE_PRESSED :鼠标按钮按下事件 vMOUSE_RELEASED :鼠标按钮松开事件 MouseEvent 事件的监听者 MouseListener 和 MouseMoveListener 中 有 7 个方法,与上述事件对应。系
43、统会根据具体事件类型,自动 调用相关的方法。 MouseEvent 类的主要方法 getX ( ) 和 getY ( ):分别返回鼠标事件的 X 和 Y 坐标。 getPoint ( ):返回包含鼠标事件坐标的 Point 对象。 getClickCount ( ):返回鼠标点击事件的点击次数。 JAVA图形用户界面的设计与实现 v键盘事件键盘事件 ( KeyEvent ) KeyEvent 类包含 3 种键盘事件: KEY_PRESSED:按键被按下 KEY_RELEASED:按键被松开 KEY_TYPED:按键被敲击 KeyEvent 类的主要方法: public char getKeyC
44、har ( ):返回与引发事件的按键对应的 Unicode 字 符。 public String getKeyText ( ) :返回引发事件的按键的文本内容,如 “F3”、“Home”、 “A” 等。 与 KeyEvent 事件对应的监听者接口是 KeyListener,该接口的 3 个方法 是: public void keyPressed (KeyEvent e ) ; public void keyReleased (KeyEvent e ) ; public void keyTyped (KeyEvent e ) ; JAVA图形用户界面的设计与实现 v画布(画布(Canvas)-
45、用来画图的矩形背景组件。 (1)创建 Canvas myCanvas = new Canvas ( ) ; myCanvas . setSize (400, 300) ; (2)常用方法 public void paint ( Grapics g ):用户须覆盖该方法以实现图形绘制。 (3)产生事件 可引发键盘和鼠标事件。 例 7-14 TestCanvas .java 程序中使用了事件裁剪类 MouseAdapter 和 MouseMotionAdapter。使 用事件裁剪类 作为父类的目的是不用实现对应监听者接口包含的 所有方法。因为事件裁剪类已经用空方法体实现了对应监听者的 所有方法(见
46、 p224)。 JAVA图形用户界面的设计与实现 JAVA图形用户界面的设计与实现 v public void paint(Graphics g) v g.drawString(您在( + X + , + Y + )至 + ( + endX + , + endY +)画了一条线, 10, 20); v g.drawLine(X,Y,endX,endY); v void this_mousePressed(MouseEvent e) v X = e.getX(); v Y = e.getY(); v showStatus(您在( + X+,+Y+)开始画线); v void this_mouse
47、Released(MouseEvent e) v endX = e.getX(); v endY = e.getY(); v showStatus(画线结束); v repaint(); JAVA图形用户界面的设计与实现 7.10 布局设计布局设计 v组件在容器中的位置和尺寸都是由布局管理器来 决定的。 v取消布局管理器:setLayout(null); v默认布局管理器: vWindow,Frame和Dialog的默认布局管理器是 BorderLayout。 1.Panel和Applet的默认布局管理器是FlowLayout。 JAVA图形用户界面的设计与实现 布局管理器 v共5种: vFl
48、owLayout:流式边界管理器 vBorderLayout:边界边界管理器 vGridLayout:网格布局管理器 vCardLayout:卡片布局管理器 1.GridBagLayout:网格包布局管理器 JAVA图形用户界面的设计与实现 7.10.1 FlowLayout FlowLayout :组件按加入顺序自左至右 排列,一行排满,转下一行。 特征: v不限制组件的大小,允许它们有自己的 最佳大小。 v当容器被缩放时,组件的位置可能会变 化,但组件的大小不变。 例子:MyFlow.java JAVA图形用户界面的设计与实现 7.10.2 BorderLayout 把容器空间划分为东、西
49、、男、北、中五个区域。加入组件时,应指 明所加区域。 例 7-17TestBorderLayout . java JAVA图形用户界面的设计与实现 7.10.3 CardLayout 可在容器中加入多个组件,但各组件相互重叠,每次只能显示其中一个。 使用 CardLayout 的一般步骤: (1)创建 CardLayout 对象:card = new CardLayout ( ) ; (2)用容器的 setLayout ( ) 方法设置布局管理器:setLayout (card) ; (3)为组件分配一个字符串名,并加入组件: add (字符串名,组件); (4)调用 CardLayout 的 show ( ) 方法,根据字符串名显示组件: show(容器名,字符串),或按加入顺序显示组件,如 first (容器 名)、last (容器名)、next (容器名)、 previ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《学前教育概述》课件
- 单位管理制度集合大合集【人力资源管理篇】十篇
- 单位管理制度分享汇编【员工管理篇】十篇
- 单位管理制度分享大全【人员管理篇】
- 单位管理制度范例选集【员工管理】
- 单位管理制度范例合集【人力资源管理篇】十篇
- 单位管理制度呈现合集【员工管理篇】
- 单位管理制度呈现大合集【人事管理】十篇
- 《微点精析》考向19 文化常识 高考语文一轮复习考点微专题训练(原卷+解析)
- 第4单元 民族团结与祖国统一(B卷·能力提升练)(解析版)
- 教练技术CP理论PPT课件
- 机械工程学报标准格式
- 湿法脱硫用水水质要求
- 东南大学文科揭榜挂帅重大平台绩效考核表
- 城管局个人工作总结
- 铂铑合金漏板.
- (完整版)建筑力学(习题答案)
- 少年宫篮球活动教案
- 国有建设企业《大宗材料及设备采购招标管理办法》
- 民间秘术绝招大全
- (完整版)展厅展馆博物馆美术馆设计标招标评分细则及打分表
评论
0/150
提交评论