java电子基础gui编程界面设计_第1页
java电子基础gui编程界面设计_第2页
java电子基础gui编程界面设计_第3页
java电子基础gui编程界面设计_第4页
java电子基础gui编程界面设计_第5页
免费预览已结束,剩余69页可下载查看

下载本文档

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

文档简介

1、GUI and Event1、使用AWT(Abstract Window Toolkit)组件2、包含组件的组件组件容器(Container) 3、外观的管理与控制4、事件与事件处理5、AWT中的各种组件6、组件的应用实例使用AWT(Abstract Window Toolkit)组件通过图形用户界面(Graphical Usererface,GUI),用户和程序之间可以方便友好地进行交互。在Java语言中,Java的基础类(Java Foundation Classed,JFC)是开发GUI的API集,它包括以下几个部分:抽象窗口工具包(AWT):Java开发用户界面最初的工具包,是建立JF

2、C的主要基础;2D API:实现高质量的二维图形;Swing组件:建立在AWT之上,新的、功能更强大的图形组件包;可API:支持残疾用户的交互;使用AWTjava.awt包中包含了一个完整的类集以支持GUI程序的设计,其中的类及相互关系可以用下图来描述:java.lang.ObjectComponent布局管理类ButtonCheckboxListContainerWindonelFrameDialogApplet字体类菜单类图象类颜色类Graphics事件类使用AWTComponent类ponent类,它是包中最的类就是Java图形用户界面的基础,大部分组件都是由该类派生出来的。 Compo

3、nent类是一个抽象类,其中定义了组件所具有的一般功能:基本的绘画支持(p , update等)、, rep 字体和颜色等外形控制(setFont, SetForeground等)、大小和位置控制(SetSize, SetLocation等)、图象处理(实现接口 ImageObserver)以及组件状态控制(SetEnable, isEnable, isVisible, isValid等) ,。常见的组件包括:Button, Checkbox, CheckboxGroup,Choice, Label, List, Canvas,ponent, Scrollbar等。使用AWT使用AWT菜单类菜

4、单类也是一种组件,只不过菜单类并不是由一般的Component类派生的,而是从得到的。ponent类继承使用AWTContainer类ponent类派生出来的一种特殊类是由类,用来表示各种GUI组件的容器,其主要功能包括:组件的管理:方法add()可以向其中添加一个组件,remove()删除其中的一个组件,布局管理:每个Container类都和一个布局管理器相联,以确定其中组件的布局。 Container类可以通过 setLayout()方法设置某种布局方式。常见的Container类有:Frame,Dialog,Panel, Applet等。使用AWT布局管理器类Java中提供了各种布局管理

5、器类来管理各种组件在容器中的放置状态,这些类都是实现了LayoutManager接口的。标准的布局管理器类有:FlowLayoutBorderLayoutGridLayoutCardLayoutGridBagLayout还可以通过实现LayoutManager接口来定义自己的布局管理器。使用AWTGraphics类Graphics类是所有用来在组件上进行图形绘制时所使用的图形环境上下文的父类,它提供了对组件进行图形绘制的一般方法的接口,一个Graphics对象中封装了用来进行图形绘制时必须得状态信息,包括:要绘制的组件对象当前颜色当前字体当前逻辑点操作的功能(XOR和Pa当前XOR方式的替代颜

6、色)使用AWTGraphics类还提供了一系列的方法来绘制几何图形、文字、图象以及动画:Lines:drawLine()Rectangles:drawRect(), fillRect() 和 clearRect()Raised or lowered rectangles:draw3DRect() 和 fill3DRect()Round-edged rectangles:drawRoundRect() 和 fillRoundRect()Ovals:drawOval() 和 fillOval()Arcs:drawArc() 和 fillArc()Polygons :drawPolygon() 和

7、fillPolygon()Text :drawString()Image :drawImage()Animation :通过一个循环来完成使用AWT事件类:描述各种事件的类,包括AWTEvent类及其子类、Event类。字体类:用来表示字体的类,通过它可以在GUI中使用多种系统支持的字体。图象类:用来表示与处理图象的类(GIF、JEPG)。颜色类:封装了各种颜色。其他类:光标类、各种几何类等 使用AWT组件及其对等类(peers)java.awt.peer中有全部awt组件的对等对象的集合,每个对象都提供了机器相关基本的方法,awt中的组件使用这些方法来实现机器和操作系统无关的GUI。组件容器

8、一个Java的图形用户界面的最基本组成部分就是组件(Component),组件是一个可以以图形化的方式显示在 屏幕上并能与用户进行交互的对象,比如Button, Checkbox,Choice, Label, List等。组件不能独立地显示出来,必须将组件放在特定的对象中才能显示出来,这就是包含组件的组件Containerponent的子类,它本身也(容器)。容器是是一个组件,具有组件所有的性质。另外,它还具有容纳其他组件和容器的功能。组件容器窗口,框Container另一个窗口Container组件容器ComponentContainerPanelButtonAppletListWindow

9、FrameTextfieldCheckboxFileDialog组件容器AWT使用Container类来定义最基本的组件容器,它有两个常用的子类:Window类和Panel类。Window类还有两个子类:定义框,用Dialog子类。Java还提了一个Dialog的子类FileDialog,用它生成文件框。定义一般意义的窗口,用Frame类。Frame可以用其构造方法Fame(String)来生成,其标题由 String参数指定。一个Frame刚被创建后,其初始大小为(0,0),而且是不可见的,所以为了使Frame显示出来,必须在程序中显式地设置一下它的大小。Demo:FrameDemo:Dia

10、logimport java.awt.*;public class myFrame extends Framepublic sic void main(String args)myFrame fr = new myFrame(Frame Test); fr.setSize(400,300); fr.setBackground(Color.white); fr.setVisible(true);fr.showDialog();public myFrame(String s)super(s);public void showDialog()Dialog fd = new Dialog(this,

11、Dialog Test,true); fd.setSize(100,100);fd.setBackground(Color.red); fd.setVisible(true);组件容器Panel可以使程序员更方便地组织自己的组件,得到赏心悦目的布局。Panel可以使用构造方法Panel()生成,当一个Panel对象被创建后,必须放在Window和Frame中才能可见。使用 add()方法就可以将Panel添加到其他容器中。Applet是Panel的子类,因此在小应用程序里可以直接加入组件,而一般的应用程序必须先定义组件容器。小应用程序在浏览器中所显示的区域就是Panel,所占的尺寸就是缺省的P

12、anel尺寸(浏览器本身也可以看作是一个容器)。组件容器框架(Frame)Frame是一个顶级窗口,通常是应用程序的骨架。Frame中的退出按钮被点击后,将产生一个WindowEvent事件,表示关闭Frame,可以在Frame中实现WindowListener接口以WindowEvent事件。Frame中无法直接键盘事件,但可以往Frame中添加画布、面板凳组件,让它们来负责键盘事件。面板(Panel)面板可以处理事件,但象画布一样,一定要先获得输入焦点。框(Dialog)框与Frame相类似,一般用于接收用户的输入数据,实现与用户的交互。它与一般窗口的区别在于它依赖其他的窗口。框分有模式和

13、无模式两种,前者只让应用程序响应框事件,后者则可以响应框以外的事件,可以通过其构造方法来设置框是否有模式:Dialog( Parent, Title, isModal ) /父窗口,标题,是否有模式组件容器文件框(FileDialog)框。可以用其getFile()方表示文件选择的框,它是有模式的文件名。法来获得要打开或要滚动窗口(ScrollPane)滚动窗口也是容器的一种,象Panel一样,无法单单独使用。使用滚动窗口可以查看大面积的区域,因为它有滚动条。滚动窗口内只能放一个组件,因此也无须布局管理器。通常是在滚动窗口中放一个面板,然后在面板中添加各种组件。滚动窗口中的事件一般由其中的组件

14、来管理。组件容器用户可以从具体的容器中继承来创建自己的容器,以构造一些个性化的窗口。一般用户通常要构造一些适合自己需要的可以从Dialog中继承。框,此时,public class MyFrame extends Framepublic sic void main(String args)MyFrame fr = new MyFrame(Frame and FileDialog Test); fr.setSize(500,500);fr.setBackground(Color.blue);fr.setVisible(true);fr.showDialog();public MyFrame(St

15、ring str)super(str);addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0););public void showDialog()FileDialog fd = new FileDialog(this, FileDialog); fd.setVisible(true);public class MyPanelInFrame extends Framepublic MyPanelInFrame(String str)super(str);addWi

16、ndowListener( new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public sic void main(String args)MyPanelInFrame fr = new MyPanelInFrame(Panel in Frame); Panel pan = nenel();fr.setSize(500,500); fr.setBackground(Colreen); fr.setLayout(null);pan.setSize(200,200); pan.setBackg

17、round(Color.yellow); pan.setLocation(100,100);Button b1 = new Button(Help); Button b2 = new Button(Test); pan.add(b1);pan.add(b2);fr.add(pan); fr.setVisible(true);AWT的组件组件的应用步骤加入 addAWT的选择组件按钮(Button)可点击的用户界面组件,当组件被点击是,产生AcitonEvent事件,可以用ActionListener来。复选框(Checkbox)提供简单的“on/off”开关,同时旁边还可以显示说明信息。当复选

18、框状态发生变化时,会产生ItemEvent事件,可以用ItemListener来复选框组(CheckboxGroup)单选框(Radio Button)当多个复选框组成一组时,就形成了单选框。复选框组中的复选框之间是相互关联的,每次有且只有一个处于选中状态。下拉式菜单(Choice)在下拉式菜单中有多个选项,但每次只能选择一项。当选择发生时,。会产生ItemEvent事件,可以用ItemListener来。Demo:选择组件/Checkboxpan.add( new Checkbox(one, null, true) ); pan.add( new Checkbox(two, null, fa

19、lse) ); pan.add( new Checkbox(three, null, false) );AWT的显示组件(Label)静态文字,多用于指示信息,无事件。单行文本区(TextField)ponent只能显示一行信息,当按回车键后,会产生ActionEvent事件,可以用ActionListener来。文本输入区(TextArea) ponent可以显示多行信息,并且有滚动条支持。按回车键后并不产生事件,如果要判断是否完成输入,需要用其他方法,如用一个结束按钮。列表(List)列表提供了很多文本选项,可以同时看到多项,也有滚动条的支持,并且可以单选或多选。当用户单选或多选时,会产生

20、ItemEvent事件。Demo:显示组件/ Text F i e l dText F i e l dtf 1 ,tf 2 ,tf 3 ,tf 4 ;tf 1 = new Text F i e l d() ;/a b ltextf i e l df i e l d oftf 2 tf 3 tf 4=new new newText F i e l d( ,20) ;/b l20 co l umnsText F i e l d( o! ) ;/ predef i nedtextd i sp l ayedText F i e l d( o ,30) ;/ predef i nedtexti n 30

21、 co l umnsAWT的组件滚动条(Scrollbar)滚动条一般不单独使用,它通常与另一个组件联合使用,用以指示另一个组件的变化情况。一般情况下,它可以用ScrollPane代替。画布(Canvas)画布类在使用时必须被继承,它本身并不做任何事情,它只是在屏幕上生成了一个矩形空白区域,使应用程序能够在上面任意作画,如写文字、画各种图形、接收键盘或鼠标输入等。如果想在画布上完成图画功能,必须重写其pa()方法。各种鼠标、键盘事件,只需实现KeyListener、画布MouseMotionListener和MouseListener接口即可。当在画布中输入字符时,必须先调用requestFo

22、ucus()方法为画布获得输入焦点,一般在mouseClicked()方法中调用该方法。AWT的组件菜单菜单与其他组件不同,无法直接添加到容器的某一位置,也无法用布局管理器对其加以控制,它由以下概念支撑:菜单条(Bar)只能添加到Frame中(用setBar()),作为摆放菜单的容器。菜单()菜单项容器,负责显示并控制其中的菜单项。它支持菜单嵌套。菜单项(Item)真正的动作,可以用ActionListener复选框菜单项(Checkbox真正的动作, 可以用ItemListener其事件(ActionEvent)。Item)其事件(ItemEvent)。弹出式菜单(Popup)与菜单相似,也

23、是菜单项容器。AWT的组件用户可以从Component中继承来创建自己的轻量级组件,此时,在新的组件中一般要实现(重写)以下方法:构造方法:如果组件要响应事件(如鼠标按键),构造方法中必须调用enab l eEvents()方法;更改组件状态的方法:比如setText()方法等,在这些方法中,如果状态的变化引起了组件外观的变化,则需要调用repa()方法,如果组件的尺寸发生了变化,则在调用repa invalidate()方法;()方法前还需要调用AWT的组件组件的绘制方法:pa(),还包括组件最佳尺寸getPreferredSize()和最小尺寸getMinimumSize()方法等。组件的

24、事件器方法和取消方法:addAct i onL i stener()和removeAct i onL i stener(),在这两个方法中要调用AWTEvent Mu l t i caster现;contains()方法:类中的方法来实如果组件只响应一定区域中发生的事件;组件状态改变及事件产生方法:prosX(),如prosMouseEvent()组件的应用菜单画布单行文本输入区按钮复选框下拉式菜单列表文本输入区版面布局版面布局为了使生成的图形用户界面具有良好的无关性,Java语言提供了布局管理器来管理组件在容器中的布局,而不使用直接设置组件的位置和大小的方式。每个容器都要一个布局管理器,容器

25、中组件的定位都由它来决定。当容器需要对某个组件进行定位时,就会调用其对应的布局管理器。版面布局在程序中安排组件的位置和大小时,应注意:容器中布局管理器负责各组件的大小和位置,用户无法在这种情况下设置组件的这些属性,如试图调用 setLocation(), setSize(), setBounds()等。如果用户确实需要自己设置组件的大小和位置,则应取消该容器的布局管理器,方法为:setLayout(null)但用户必须使用setLocation(), setSize(), setBounds()等方法为组件设置大小和位置,不过程序将系统相关。版面布局在容器中所有组件的布局都由布局管理器来控制,

26、每个容器,如Panel、Windows或Frame都有各自缺省的布局管理器,程序员也可以在程序中指定一个新的布局管理器。Java语言中包含五种布局管理器:FlowLayout:Panel和Applet的缺省布局管理器BorderLayout:Window、Dialog和Frame的缺省布局管理器GridLayoutCardLayoutGridBagLayout版面布局FlowLayout布局方式是将组件一排一排地依次放置,它自动调用组件的getPreferredSize()方法,使用组件的最佳尺寸来显示组件。当容器被重新设置大小后,则布局也会随之发生改变:各组件的大小不变,但相对位置会发生变化

27、。FlowLayout类有三种构造方法:pub li cF l owLayout ()使用缺省居中对齐方式,组件间的水平和竖直间距为缺省值5个象素。pub li c F l owLayout (a li gnment )使用指定的对齐方式(F l owLayout. LEFT,F l owLayout. RIGHT ,enter),水平和竖直间距为缺省值5象素。F l owLayopub li cF l owLayout (a li gnmen t, hor i zonta l Gap,ver t i ca l Gap)使用指定的对齐方式,水平和竖直间距也为指定值。Demo: flowlayo

28、utpublic class FlowWindow extends Framepublic FlowWindow()FlowLayout() );t(Helvetica, Font.PLAIN, 14);Button 1);add(new Button(2);add(new Button(Button 3);add(new Button(Long-Named Button 4); add(new Button(Button 5);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return su

29、per.handleEvent(e);public sic void main(String args)FlowWindow window = new FlowWindow(); window.setTitle(FlowWindow Application);windock();window.show();setLayout( new setFont(new Fond(new Button(版面布局BorderLayout布局方式提供了更复杂的布局控制方法,它包括5个区域:North, South, East, West和Center,其方位依据上北下南左。当容器的尺寸发生变化时,各组件的相对

30、位置不变,但中间部分组件的尺寸会发生变化,南北组件的高度不变,东西组件的宽度不变。BorderLayout类有二种构造方法:pub li cBorderLayout ()各组件间的水平和竖直间距为缺省值0个象素。pub li cBorderLayout (hor i zonta l Gap,ver t i ca l Gap)各组件间的水平和竖直间距为指定值。版面布局如果容器使用了BorderLayout布局方式,则用add()方法往容器中添加组件时必须指明添加的位置,否则组件将无法正确显示(不同的布局管理器,向容器中添加组件的方法也不同)。add(“West”, new Button(“Wes

31、t”);add(“North”, new Button(“North”);add(new Button(“West”), BorderLayout.SOUTH); 若没有指明放置位置,则表明为默认得“Center”方位。每个区域只能添加一个组件,若添加多个,则只能显示一个。如果想在一个区域添加多个组件,则必须先在该区域放一个容器,再将多个组件放在该容器中。若每个区域或若干个区域没有放置组件,东西南北区域将不会有预留,而中间区域将置空。Demo:borderlayoutpublic class BorderWindow extends Framepublic BorderWindow()setL

32、ayout(new BorderLayout(5,5); setFont(new Font(Helvetica, Font.PLAIN, 14);add(North, new Button(North);add(South, new Button(South);add(East, new Button(East);add(West, new Button(West); add(Center, new Button(Center);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return su

33、per.handleEvent(e);public sic void main(String args)BorderWindow window = new BorderWindow(); window.setTitle(BorderWindow Application); windock();window.show();版面布局GridLayout布局方式可以使容器中的各组件呈网格状分布。容器中各组件的高度和宽度相同,当容器的尺寸发生变化时,各组件的相对位置不变,但各自的尺寸会发生变化。各组件的排列方式为:从上到下,从左到右。与BorderLayout类相类似,如果想在一个网格单元中添加多个组

34、件,则必须先在该网格单元放一个容器,再将多个组件放在该容器中。版面布局GridLayout类有三种构造方法:pub li cGr i dLayout ()在一行中放置所有的组件,各组件间的水平间距为0象素。pub li c Gr i dLayout (rows,co l s)生成一个rows行,co l s列的管理器,最多能放置rows*co l s个组件。rows或co l s可以有一个为0。若rows为0,这表示每行放置co l s个组件,根据具体组件数,可以有任意多行;若co l s为0,这表示共有rows行,根据具体组件数,每行可以放置任意多个组件组件间的水平和竖直间距为0象素。pub

35、 li c Gr i dLayout ( ver t i ca l Gap )rows,co l s,hor i zonta l Gap,Demo:gridlayoutpublic class GridWindow extends Framepublic GridWindow()tLayout(new GridLayout(0,2);tFont(new Font(Helvetica, Font.PLAIN, 14);d(new Button(Button 1);add(new Button(2);add(new Button(Button 3);add(new Button(Long-Name

36、d Button 4); add(new Button(Button 5);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return super.handleEvent(e);public sic void main(String args)GridWindow window = new GridWindow(); window.setTitle(GridWindow Application);windock();window.show();版面布局CardLayout布局方式可以帮助用户处

37、理两个或的组件共享同一显示空间。共享空间的组件之间的关系就像一摞牌一样,它们摞在一起,只有最上面的组件是可见的。CardLayout可以象换牌一样处理这些共享空间的组件:为每定义一个名字,可按名字选牌;可以按顺序向前或向后翻牌;也可以直接选第一张或最后一。arent,St r i ng arent )pub li c pub li c pub li c pub li c pub li cvo i d vo i d vo i d vo i d vo i dshow(Conta i n next (Conta i nname)prev i ous(Conta i n(Conta i narent

38、) arent )l ast (Conta i narent )其中,Conta i ner是拥有该CardLayout布局管理器的容器。版面布局CardLayout类有二种构造方法:pub li cCardLayout ()组件距容器左右边界和上下边界的距离为缺省值0个象素。pub li cCardLayout (hor i zonta l Gap,ver t i ca l Gap)组件距容器左右边界和上下边界的距离为指定值。与BorderLayout类和GridLayout类相类似,每中只能放置一个组件,如果想在一放置多个组件,则必须先在该牌放一个容器,再将多个组件放在该容器中。采用Car

39、dLayout布局方式时,向容器中添加组件时可以为组件取一个名字,以供更换显示组件时使用:add(Component, String);版面布局GridBagLayout布局方式是AWT中最灵活、同时也是最复杂的一种布局方式。与GridLayout相同,它也是将容器中的组件按照行、列的方式放置,但各组件所占的空间可以互不相同。GridBagLayout根据对每个组件所施加的空间限制、每个组件自身所设定的最小尺寸和最佳尺寸来为每个组件分配空间。对组件施加空间限制是通过类GridBagConstra来实现的。s版面布局类GridBagConstras中提供了一些相应的属性和常量来设置对组件的空间限

40、制:gridx, gridygridwidth, gridheightfillipadx, ipadyinsetsarchorweightx, weighty版面布局(1) gridx, gridy()gridx指明组件显示区域左端在容器中的位置,若为0,则组件处于最左端的单元。它是一个非负的整数,其缺省值为 Gr i dBagConst ras. RELATIVE,表明把组件放一个添加到容器中的组件的右端。gridy指明组件显示区域上端在容器中的位置,若为0,则组件处于最上端的单元。它是一个非负的整数,其缺省值为 Gr i dBagConst ras. RELATIVE,表明把组件放一个添加

41、到容器中的组件的下端。版面布局(2)gridwidth, gridheight ()gridwidth指明组件显示区在一行中所占的网格单元数(宽度)。它是一个非负的整数,其缺省值为 1。若其值为 Gr i dBagConst ras. REMAINDER,表明该组件是一行中最后一个组件;若其值为Gr i dBagConst ra该组件紧挨着该行中最后一个组件。s. RELATIVE,表明gridheight指明组件显示区在一列中所占的网格单元数(高度)。它是一个非负的整数,其缺省值为 1。若其值为 Gr i dBagConst ras. REMAINDER,表明该组件是一列中最后一个组件;若其

42、值为Gr i dBagConst ra该组件紧挨着该列中最后一个组件。s. RELATIVE,表明版面布局(3)fill ()fill属性指明当组件所在的网格单元的区域大于组件所请求的区域时,是否改变组件的尺寸:是按照水平方向填满显示区,还是按垂直方向填满显示区,其取值可为:Gr i dBagConst ra两个方向都不填满;Gr i dBagConst ra示区,高度不变;Gr i dBagConst ra区,宽度不变;Gr i dBagConst ras. NONE:缺省值,保持原有尺寸,s. HORIZONTAL:按水平方向填满显s. VERTICAL:按垂直方向填满显示s. BOTH:

43、两个方向上都填满显示区。版面布局(4)ipadx, ipady ()ipadx指明组件的宽度与指定的最小宽度之间的关系:组 件的宽度为“ 指定的最小宽度 ipadx*2 ”。其缺省值为0。ipady指明组件的高度与指定的最小高度之间的关系:组 件的高度为“ 指定的最小高度 ipady*2 ”。其缺省值为0。版面布局insets (Insets)insets指明了组件与其显示区边缘之间的距离,大小由一个Insets对象指定。Insets类有四个属性:top:上端间距bottom:下端间距left:左端间距right:右端间距其缺省值为一个上述四个属性值都为0的对象:new Insets(0, 0

44、, 0, 0);版面布局(6)archor ()archor属性指明了当组件的尺寸小于其显示区时,在显示区中如何放置改组件的位置,其值可为:Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ras. CENTER(缺省值)s. NORTHs. NORTHEAST s. EASTs. SOUTHEAST s. SOUTHs. SOU

45、THWEST s. WESTs. NORTHWEST版面布局(7)weightx, weighty(double)weightx指明当容器扩大时,如何在列间为组件分的空间,其值可以从0.0到1.0,缺省值为0.0。weighty指明当容器扩大时,如何在行间为组件分的空间,其值可以从0.0到1.0 ,缺省值为0.0 。外外若两者都为0,所有组件都团聚在容器的,因为此时所有额外空间都添加在网格单元与容器边缘之间。数值越大,表明组件的行或列将占有的额外空间。若两者都为1.0,表明组件的行或列将占有所有的额外空间。版面布局当一个容器的布局方式为GridBagLayout时,往其中添加一个组件,必须先用GridBagConstras设置该组件的空间限制。/在一个容器中GridBagLayout g = new GridBagLayout(); GridBagConstras c = new GridBagConstras(); setLayout( g );Button b = new Button(“Test”); c.fill = /设置c的值/生成组件bg.setConstra add( b );s( b, c );/根据c的值对组件b进行

温馨提示

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

评论

0/150

提交评论