Java图形用户界面设计.pptx

上传人:一*** 文档编号:71818789 上传时间:2023-02-06 格式:PPTX 页数:43 大小:316.55KB
返回 下载 相关 举报
Java图形用户界面设计.pptx_第1页
第1页 / 共43页
Java图形用户界面设计.pptx_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《Java图形用户界面设计.pptx》由会员分享,可在线阅读,更多相关《Java图形用户界面设计.pptx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、会计学1Java图形用户界面设计图形用户界面设计(shj)第一页,共43页。图像图像(t xin)用户界面用户界面 图形用户界面图形用户界面(GUI)(GUI)使用图形的方式,借助菜单、使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便按钮等标准界面元素和鼠标操作,帮助用户方便的发送指令,并将运行结果以图形方式显示得给的发送指令,并将运行结果以图形方式显示得给用户。用户。抽象窗口工具包抽象窗口工具包(AWT)(AWT)是一组是一组JavaJava类,此组类,此组JavaJava类类允许创建图形用户界面允许创建图形用户界面(GUI)(GUI)。AWTAWT提供用于创建生动提供用

2、于创建生动(shngdng)(shngdng)而高效的而高效的GUIGUI的的各种组件,如按钮、菜单、列表、文本框等,还各种组件,如按钮、菜单、列表、文本框等,还包括窗体、面板等容器。包括窗体、面板等容器。在在JDK1.2JDK1.2版本以后,引入新的包版本以后,引入新的包java.swingjava.swing。Swing GUISwing GUI组件在组件在AWTAWT的基础上增加了很多功能。的基础上增加了很多功能。第1页/共43页第二页,共43页。java.awt java.awt 包中的类体系结构包中的类体系结构ButtonLabelJcomponentComponentCheckbo

3、xContainerChoiceCanvasTextComponentPanelWindowAppletFrameDialogTextAreaTextField第2页/共43页第三页,共43页。容器容器(rngq)容器(Container)是用来组织其它界面成分和元素的单元。java.awt包中的Container类可直接或间接(jin ji)派生出两个常用容器:框架(Frame类)和面板(Panel类)。容器有一定的范围;容器有一定的位置;容器通常都有一个背景;容器可以包含其他的界面成分和元素。容器可以按一定的规则来排列它所包含的元素。第3页/共43页第四页,共43页。控制控制(kngzh)

4、(kngzh)组件组件控制组件指可以放置在用户界面上的任何东西,它是图形用户界面中的最小单元之一,它里面不再包含其他的元素(yun s)。它的作用是完成与用户的一次交互。AWT支持的组件:按钮、标签、文本框、文本区、复选框、单选按钮、滚动条、单选按钮、表格、菜单等。第4页/共43页第五页,共43页。不同不同(b tn)组件组件标签(bioqin)文本框复选框单选按钮文本(wnbn)区按钮第5页/共43页第六页,共43页。容器容器(rngq)类组件类组件_1容器分为顶层容器和非顶层容器两大类。顶层容器可以独立的窗口(chungku),不需要其他组件支持。顶层容器的类是Windows,其重要子类是

5、Frame和Dialog。非顶层容器不是独立的窗口(chungku),必须位于窗口(chungku)之内,非顶层容器包括Pande及ScrollPane等,Panel的重要子类是Applet类。Container类的特点是:容器类可以容纳其他组件,加入容器中后,组件的位置由布局管理器决定。第6页/共43页第七页,共43页。容器容器(rngq)类组件类组件_2Container类的常用方法有:add(Component comp)将指定组件放到容器中。remove(Component comp)删除指定组件 setLayout(LayoutManager mgr)设置(shzh)容器布局第7页/

6、共43页第八页,共43页。容器容器(rngq)(rngq)框架框架JFrame的层次结构为ContainerWindowsFrameJFrame。Jframe被默认初始化为不可见的。可以通过以下任一构造函数来创建:JFrame():创建一个不含标题的标准窗口。JFrame(GraphicsConfiguration gc):创建一个带标题栏图标的标准窗口。JFrame(String Title):创建一个含有标题的窗口,这个标题是由参数title指定(zhdng)的。JFrame(String Title,GraphicsConfiguration gc)当一个JFrame窗口被创建以后,需要

7、调用setSize()方法来设置窗口的大小,并调用setVisible()来显示窗口。第8页/共43页第九页,共43页。使用使用JFrame容器容器(rngq)示例示例importjavax.swing.*;importjavax.swing.*;importjava.awt.*;importjava.awt.*;classFrameTestclassFrameTestJframef;Jframef;publicFrameTest()publicFrameTest()f=newJFrame(“f=newJFrame(“窗体标题窗体标题(biot)”);(biot)”);f.setDefault

8、CloseOperation(Jframe.EXIT_ON_f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);CLOSE);f.setVisible(true);f.setVisible(true);f.setSize(240,90);f.setSize(240,90);使用GUI组件(z jin)必须导入该包 设置窗体属性第9页/共43页第十页,共43页。容器容器(rngq)-(rngq)-面板面板面板不是一个单独的窗口,它只是包含在窗口中的一个区域。面板是可以将许多组件组合起来的一种容器,在程序中经常用于布局和定位。最简单的创建面板的方式就是

9、通过面板的构造函数 JPanel()来进行。必须(bx)将面板添加到窗体中。第10页/共43页第十一页,共43页。使用使用JPanle容器容器(rngq)示例示例classPanelTestextendsFrameTestclassPanelTestextendsFrameTest JPanelpanelObj;JPanelpanelObj;publicPanelTest()publicPanelTest()panelObj=newJPanel();panelObj=newJPanel();panelObj.setBackground(Color.red);panelObj.setBackgr

10、ound(Color.red);getContentPane().add(panelObj);getContentPane().add(panelObj);加入组件到框架(kun ji)窗体,等价于Container m=getContentPane();m.add(panelObj);第11页/共43页第十二页,共43页。用户界面用户界面(yn h ji min)(yn h ji min)对对象(象(UIUI)所有的UI组件和容器类都有一个(y)共同的基类Component类,并从中继承了一些属性和方法:font、background、foreground、height、width等。除JF

11、rame、JApplet和JDialog外,所有的Swing组件都是Jcomponent的子类,常见属性有:toolTipText、doubleBuffered、border等。第12页/共43页第十三页,共43页。按钮按钮可以使用以下任一构造函数来创建(chungjin)按钮:JButton():新建一个空的按钮JButton(String text):新建一个包含给定字符串的按钮v按钮是任何(rnh)GUI都不可或缺的组件v用来捕捉用户操作的最为简便的方式.JButton btnOk=new JButton(确定(qudng)!);JButton btnCancel=new JButton

12、(取消!);add(btnOk);add(btnCancel);.第13页/共43页第十四页,共43页。标签标签(bioqin)可以通过(tnggu)以下任一构造函数来创建:JLabel():新建一个空标签JLabel(String labeltext):新建一个包含给定文本的标签JLabel(Icon image):使用指定图像新建一个标签JLabel(String labeltext,int alignment):新建一个包含给定对齐方式的标签,对齐方式可以为 Label.LEFT、Label.RIGHT 或 Label.CENTERJLabel(String labeltext,Icon

13、 icon,int alignment)v通常用来指明项目的用途v标签(bioqin)不可以被用户编辑第14页/共43页第十五页,共43页。I ImageIconmageIcon类类class IconTest extends PanelTest JLabel labelObj;ImageIcon iconObj;public IconTest()iconObj=newImageIcon(c:water.jpg);labelObj=new JLabel(iconObj);panelObj.add(labelObj);第15页/共43页第十六页,共43页。文本框文本框可以通过以下(yxi)任一构

14、造函数来创建:JTextField():新建一个文本域 JTextField(int columns):新建一个包含给定列数的文本域 JTextField(String s):新建一个包含给定字符串的文本域 JTextField(String s,int columns):新建一个包含给定字符串和列数的文本域 v一种用来输入文本的GUI组件v只能(zh nn)接受一行输入第16页/共43页第十七页,共43页。JPasswordFieldJPasswordField类类class PasswordFieldTest extends PanelTest JPasswordField passwor

15、dObj;public PasswordFieldTest()passwordObj=new JPasswordField(口令(kulng),15);panelObj.add(passwordObj);JPasswordField类是JTextField类的子类。当在这类控件中输入数据(shj)时,只出现“*”号。第17页/共43页第十八页,共43页。文本文本(wnbn)区区_1可以通过(tnggu)以下构造函数来创建:JTextArea():新建一个TextAreaJTextArea(introws,intcols):新建一个包含给定行数和列数的TextAreaJTextArea(Stri

16、ngtext,introws,intcols):新建一个包含给定字符串、行数和列数的TextAreav要接受(jishu)输入多行文本时使用v可以包括滚动条.JTextArea txtComment=new JTextArea();add(txtComment);.第18页/共43页第十九页,共43页。文本文本(wnbn)区区_2JTextArea有如下属性:lineWrap、rows、lineCount、tabSize等。可以使用以下方法完成文本区的插入(chr)、追加和替换。publicvoidinsert(Stings,intpos)publicvoidappend(Stings)pub

17、licvoidreplaceRange(Stings,intstart,intend)第19页/共43页第二十页,共43页。滚动滚动(gndng)面板面板可以通过以下构造函数来创建:JScrollPane(Componentview,intvsbPolicy,inthsbPolicy):添加指定组件(zjin)到新的滚动面板容器上,可指定垂直和水平滚动条。v作为滑块使用(shyng)v用来实现窗口的滚动class ScrollPaneTest extends PanelTest ScrollPane ScrollPaneObj;public ScrollPaneTest()ScrollPane

18、Obj=newJScrollPane(textObj,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);panelObj.add(ScrollPaneObj);第20页/共43页第二十一页,共43页。复选框复选框可以通过(tnggu)以下构造函数来创建:JCheckBox(Stringtext,Iconicon,booleanselected):新建一个带图标和标签的复选框复选框中常用的方法:setSelected(booleanstate)isSelected().Icon iObj=n

19、ew ImageIcon(“c:1.gif);checkBoxObj1=new JCheckBox(复选框,iOBJ,false);panelObj.add(checkBoxObj1);.第21页/共43页第二十二页,共43页。单选按钮单选按钮可以通过以下构造函数来创建:JRadioButton(Stringtext,booleanselected):新建一个(y)标签的单选按钮。.rButtonObj1=new JRadioButton(单选按钮1,true);panelObj.add(radioButtonObj1);.ButtonGroup buttonGroupObj=new Butt

20、onGroup();buttonGroupObj.add(rButtonObj1);buttonGroupObj.add(rButtonObj2);建立(jinl)约束第22页/共43页第二十三页,共43页。文本文本(wnbn)组合框组合框可以(ky)通过以下构造函数来创建:JComboBox(Objectitems):新建一个下拉列表框文本组合框常用属性:selectedIndex、selectedItem等。文本组合框常用方法:addItem(Objectitem)removeItem(ObjectanObject)removeAllItem().String comboStr=文本(wn

21、bn)列表框,文本(wnbn)列表框1,文本(wnbn)列表框2,文本(wnbn)列表框3,;comboBoxObj=new JComboBox(comboStr);panelObj.add(comboBoxObj);.第23页/共43页第二十四页,共43页。文本文本(wnbn)列表框列表框可以通过以下(yxi)构造函数来创建:JList(ObjectlistData):新建一个含指定元素的列表框.String listStr=文本(wnbn)列表框,文本(wnbn)列表框1,文本(wnbn)列表框2,文本(wnbn)列表框3;listObj=new JList(listStr);panelO

22、bj.add(listObj);.第24页/共43页第二十五页,共43页。表格表格(biog)可以通过以下构造函数来创建:JTable(ObjectrowData,ObjectcNames):新建一个(y)带表头,含指定数据的表格.String data=a1,b1,c1,d1,a2,b2,c2,d2,;String names=A,B,C,D;tableObj=new JTable(data,names);.第25页/共43页第二十六页,共43页。菜单菜单(ci dn)创建一个(y)菜单系统需要JMenuBar、JMenu和JmenuItem三个类实现:JMenuBar menuBar=ne

23、w JMenuBar();setJMenuBar(menuBar);JMenu menuFile;menuFile=new JMenu(“文件(wnjin)”);menuBar.add(menuFile);JMenuItem a1=new JMenuItem(新建);menuFile.add(a1);创建菜单条,添加到容器中创建菜单项,添加到菜单条中创建菜单子项,添加到菜单项中第26页/共43页第二十七页,共43页。图形界面示例图形界面示例(shl)第27页/共43页第二十八页,共43页。布局布局(bj)管理器管理器用户界面上的组件可以按不同方式排列。Java使用布局管理器来管理这些排列方式。

24、每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要(ji yo)用到布局管理器。AWT包和SWING包提供一组用来进行布局管理的类,称为布局管理器,每个布局管理类对应一种布局策略。第28页/共43页第二十九页,共43页。布局布局(bj)类型类型Java中的布局类型包括以下几种:FlowLayout(流式布局)BorderLayout(边界布局)GridLayout(网格(wn)布局)GridBagLayout(网格(wn)包布局)CardLayout(卡片布局)第29页/共43页第三十页,共43页。如何如何(rh)设置布局设置布局每个容器(Container对象)都有一个与它相关的缺省的

25、布局管理器。-Applet 的缺省布局是 FlowLayout,Frame的缺省布局是 BorderLayout,Panel的缺省布局是 FlowLayout。在没有(mi yu)设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。可以通过setLayout()方法为容器设置新的布局。第30页/共43页第三十一页,共43页。FlowLayoutFlowLayoutFlowLayout的构造函数有:FlowLayout():生成一个默认的流式布局FlowLayout(intalignment):可以设定每一行组件(zjin)的对齐方式FlowLayout(intalignment,int

26、horz,intvert):可以设定组件(zjin)间的水平和垂直距离vApplet和面板(minbn)的缺省布局v组件从左上角开始按从左到右、从上到下的方式排列FlowLayout mylayout=new FlowLayout();FlowLayout exLayout=new FlowLayout(FlowLayout.RIGHT);setLayout(exlayout);/为容器设置(shzh)新布局 第31页/共43页第三十二页,共43页。BorderLayout_1BorderLayout_1下面是BorderLayout所定义的构造函数:-BorderLayout():生成默认的

27、边界布局-BorderLayout(int horz,int vert):可以(ky)设定组件间的水平和垂直距离 v窗口、框架和对话框等的缺省布局(bj)v组件可被置于容器的北、南、东、西或中间位置第32页/共43页第三十三页,共43页。BorderLayout_2BorderLayout_2 BorderLayout 类定义了几个常量值以指定相应区域:BorderLayout.NORTH 对应容器的顶部 BorderLayout.EAST 对应容器的右部 BorderLayout.SOUTH 对应容器的底部 BorderLayout.WEST 对应容器的左部 BorderLayout.CEN

28、TER 对应容器的中部 加入组件(z jin)方法:void add(Component Obj,int region);.setLayout(new BorderLayout();Button btnEast=new Button(东);Button btnWest=new Button(西);Button btnNorth=new Button(北);Button btnSouth=new Button(南);Button btnCenter=new Button(中);add(btnEast,BorderLayout.EAST);add(btnWest,BorderLayout.WEST

29、);add(btnNorth,BorderLayout.NORTH);add(btnSouth,BorderLayout.SOUTH);add(btnCenter,BorderLayout.CENTER);.第33页/共43页第三十四页,共43页。GridLayoutGridLayoutGridLayout的构造函数如下所示:-GridLayout():生成一个单列的网格(wn)布局-GridLayout(introw,intcol):生成一个设定行数和列数的网格(wn)布局-GridLayout(introw,intcol,inthorz,intvert):可以设置组件之间的水平和垂直间隔v

30、用于将容器区域划分为一个矩形网格v组件(z jin)按行和列排列.Button btn;/声明(shngmng)按钮数组 String str=1,2,3,4,5,6,7,8,9;setLayout(new GridLayout(3,3);btn=new Buttonstr.length;/创建按钮数组 for(int i=0;istr.length;i+)btni=new Button(stri);add(btni);第34页/共43页第三十五页,共43页。CardLayout可存储(cnch)几个不同的布局。每个布局就像是一个卡片组中的一张卡片。在一个给定的时间总会有一张卡片在顶层。卡片通

31、常为一个Panel对象。每当需要许多面板切换,而每个面板需要显示为不同布局时,可以使用卡片布局。第35页/共43页第三十六页,共43页。BoxLayoutBoxLayoutBoxLayout的 构 造 函 数 如 下 所 示:-BoxLayout(Containertarger,intaxis):给指定的容器(rngq)和指定的方向,创建一个盒布局管理器.layoutObj=new BoxLayout(panelObj,BoxLayout.Y_AXIS);panelObj.setLayout(layoutObj);.第36页/共43页第三十七页,共43页。GridBagLayout_1 Gri

32、dBagLayout_1 通过使用以下语法容器可获得GridBagLayout:GridBagLayoutgb=newGridBagLayout();ContainerName.setLayout(gb);GridBagLayout类仅仅创建了一个(y)布局,要指出组件的位置和尺寸,还需创建GridBagConstraints类来约束。GridBagConstraints类中包含GridBagLayout类用来定位及调整组件大小所需的全部信息。v组件大小(dxio)不必相同v组件按行和列排列v放置顺序不一定为从左至右和由上至下第37页/共43页第三十八页,共43页。GridBagLayout_

33、2 GridBagLayout_2 GridBagConstraints对象指定好约束后,由GridBagLayout对象调用(dioyng)setContrains()方法约束指定的组件。方法原型:setContrains(Componentcomp,GridBagConstraintscons)第38页/共43页第三十九页,共43页。GridBagConstraints 类类_1成员变量列表:gridx,gridy:指定组件显示区域左上角单元格坐标gridwidth,gridheight:指定组件在行或列占用的单元格数量。weightx,weighty:指定在调整窗口大小时,如何在行、列间

34、分配额外的空间(kngjin)。这些变量的缺省值为0.0,表示每个网格显示区域不变。第39页/共43页第四十页,共43页。成员变量列表:fill:组件大小超出(choch)显示它的区域时,组件如何填充此单元,共有4可选值。缺省值为:GridBagConstraints.NONE,表示组件以最小尺寸显示;HORIZONTAL;VERTICAL;BOTH。anchor:如组件没有填充全部区域,指定组件放置在单元中的位置,共有9个可选值。缺省值为:GridBagConstraints.CENTERfill和anchor参数是静态变量。GridBagConstraints 类类_2第40页/共43页第四十一页,共43页。Null(空布局空布局(bj)管管理器理器)在这种布局管理器下,可任意安排组件的大小和位置。但当窗口大小改变时或跨平台时,设计好的界面会改变。无布局管理器的用法:-设置容器空布局管理器,setLayout(null)-向容器中添加组件-调用组件的setBounds()方法(fngf)指定组件放置位置component.seBounds(top,left,width,height);第41页/共43页第四十二页,共43页。学生学生(xu sheng)信息编辑器信息编辑器第42页/共43页第四十三页,共43页。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理工具

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁