Java图形界面设计课件

PPT
  • 阅读 32 次
  • 下载 0 次
  • 页数 92 页
  • 大小 1.997 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Java图形界面设计课件
可在后台配置第一页与第二页中间广告代码
Java图形界面设计课件
可在后台配置第二页与第三页中间广告代码
Java图形界面设计课件
可在后台配置第三页与第四页中间广告代码
Java图形界面设计课件
Java图形界面设计课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 92
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Java图形界面设计课件.ppt,共(92)页,1.997 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45170.html

以下为本文档部分文字说明:

第12章图形界面设计2本章主要内容◼12.1图形用户界面设计◼12.2图形用户界面工具包—Swing◼12.3创建组件◼12.4布局管理器312.1图形用户界面设计◼图形用户界面(GraphicsUserInterface,GUI)◼用图形的方式,借助菜单。按钮

等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果同样以图形方式显示给用户的技术。◼Java的GUI程序设计是Java程序设计的基础。412.1图形用户界面设计◼

Java提供的两个处理图形用户界面的类库:Java.awt包和javax.swing包Sun已经提供了一个跨平台GUI开发工具包java.awt(抽象窗口工具箱)Sun又开发了一个新的GUI开发工具包javax.swing解决了awt中存在的本地化问题512.1图形用户界面设计◼AWT和Swin

g是Java设计GUI用户界面的基础.◼与AWT的重量级组件不同,Swing中大部分是轻量级组件。正是这个原因,Swing几乎无所不能,不但有各式各样先进的组件,而且更为美观易用.所以一开始使用AWT的程

序员很快就转向使用Swing了。◼但是因为Swing是架构在AWT之上的,没有AWT就没有Swing。所以程序员可以根据自己的习惯选择使用AWT或者是Swing。◼但是,最好不要二者混用——除开显示风格不同不说,还很可能造成层次(Z-Order)错乱612.2图形用户界面工具包—Swing◼J

ava图形用户界面的基本元素包括:◼用户界面组件(组件类)◼事件处理模块(事件类)◼图形和图像工具(图形类、图像类)◼布局管理器(布局类)◼它们主要都在javax.swing包中,Swing是Java包的一部分。7812.2.1Swing组件分类◼组件:构成图形用

户界面的各种元素。◼构建图形用户界面的类可以分成三组:◼容器类(containerclass)◼辅助类(helperclass)◼组件类(componentclass)。912.2.1Swing组件分类

容器类◼容器类组件中可以包含其他组件,也可以包含其他容器。◼容器又分为两种:顶层容器和非顶层容器。◼顶层容器是可以独立的窗口,Swing的顶层容器有JFrame、JApplet和JDialog等。◼非顶层容器,不是独立的窗

口,它们必须位于窗口之内,非顶层容器包括JPanel及JScrollPanel等。1012.2.1Swing组件分类◼辅助类和组件类都属于非容器类组件不能包含其他组件的组件,其种类较多。◼辅助类◼辅助类是用来描述组件属性的,辅助类通常

包含在java.awt包中,Swing组件不能取代AWT的全部类,只能替代AWT的GUI组件类,AWT辅助类保持不变。◼组件类◼所有SwingGUI组件类(除JFrame、JApplet和JDialog)都是JComponent类的子类,例如,JBut

ton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等。◼Swing轻型组件分类参见教材P202表12.11112.2.1Swing组件分类◼一般独立应用程序主要是要框架JFrame作为容器,在JFr

ame上通过放置JPanel面板来控制图形界面的布局;◼如果应用到浏览器中,则主要使用JApplet来做容器。JApplet是一个能够嵌入到浏览器中运行的特殊容器。1212.2.1Swing组件分类1.Swing容器的层次关系一般的Swing窗口,实际上包含几个“层次”。1312.2

.1Swing组件分类1.Swing容器的层次关系一般的Swing窗口,实际上包含几个“层次”,各个层的关系如教材P202图12.2所示。◼顶层容器。是一个窗口容器对象,该对象包含了Swing窗口的各个层次,在该对象里面可以加入其它窗口对象。◼根窗格。是在创建顶层容器后自动创

建的,供Swing顶层容器在后台使用,是顶层容器中做包含的最内层,通常无法在这一层上做任何操作与处理。◼分层窗格。加入分层窗格中的组件可以设置其图层层次,且不会被内容窗格中的对象屏蔽。是其它窗格的父级。141

2.2.1Swing组件分类◼菜单栏。菜单栏被添加到分层窗格的顶部。是可选的。◼内容窗格。是分层窗格中的某一层,是一个JPanel对象,在窗体中起着工作区的作用。可以放置大部分的可见组件。◼玻璃窗格。主要用来产生绘图效果,以

及用来触发窗口程序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏的。1512.2.1Swing组件分类1612.2.1Swing组件分类2.框架类JFrame◼是Java应用程序的顶层容器。◼JFrame

是java.awt.Frame的扩展版本,是一个window子类,在使用Swing类库实现用户图形接口,必须继承该类。◼JFrame容器包括窗口标题、窗口外观、窗口边界、调整窗口大小的图标、关闭和最小化窗口的图标。并且可以直接在容器上添加组件,如按钮、文本

等。1712.2.1Swing组件分类构造方法:◼publicJFrame()throwsHeadlessException。创建了一个新的容器窗口,默认该窗口是不可见的。◼publicJFrame(Stringtitle)throwsHeadlessException创建一个新的容器窗口

,通过方法的参数设置窗口标题,该窗口默认是不可见的。1812.2.1Swing组件分类该类的常用方法(P203-204)◼getContentPane()该方法返回一个框架对象,使用该框架对象来添加组件,如增加按钮、菜单、工具栏、列表框等组件。◼setSize(intwidth,i

nthight)设置窗口尺寸、窗口大小以像素为单位计算。◼getJMenuBar()返回此窗体上设置的菜单栏。◼setJMenuBar(JMenuBarmenubar)设置此窗体的菜单栏。◼setIconImage(Imageimage)设置要作

为此窗口图标显示的图像。19例App12_1辅助类组件类20例App12_1为什么在该实例中被没有显示背景色?JFrame默认采用了FlowLayout布局管理器,你的组件在该布局管理器中被塞满整个f

rame,挡住了背景。就是说,实际上JFrame还是有背景的一般用JFrame的时候要初始化一个JPanel,把组件放在JPanel里,然后把JPanel放到JFrame里,这样可以较好的控制组建位置等其他的东西。在这种方式下直接给J

Panel设置setBackground就可以一直看到背景了命令提示符环境21例App12_1_122例App12_1_1例App12_1_22312.2.1Swing组件分类3.面板类JPanel◼面板是一种没有标题栏、没有边框的中间层容器,在该容器上可以放置其他组件如单选按钮、列表框等

。还可以包含其他容器,如一个新的JPanel对象,从而方便地实现容器的嵌套。◼在面板创建后是无法单独显示的。面板不是顶层容器,必须放到其他容器内,也可以放入另一个面板内。必须放在JFrame或Applet这样

的顶层窗口中才可以显示。◼一个界面只可以有一个JFrame窗体组件,但可以有多个JPanel面板组件2412.2.1Swing组件分类3.面板类JPanel该类的构造函数:◼JPanel():创建一个面板,并且该面板组件的布局管

理器为FlowLayout()。◼JPanel(LayoutManagerlayout):创建一个面板,且该面板设置了指定的布局管理器。布局管理器管理在容器上放置的组件,具体的内容会在12.4节详细介绍。2512.2.1Swing组件分类3.面板类JPanel常用方法:◼JPanel默认的布局管理

器是FlowLayout,可以使用setLayout()方法改变其默认布局。◼也可以采用包含它的容器不同的布局管理器。26例App12_2在框架中加入面板27例App12_2在框架中加入面板28例App12_2在框架中加入面板2912.2.1Swing组件分类4.组

件类◼又称控制组件(控件),它里面不能包含其他组件。◼作用:完成与用户的交互,包括接收用户的命令、接收用户输入的文本或用户的选择、向用户显示文本或图形。◼常用控件:命令类、选择类、文字处理类等。3012.2.1Swing组件分类5

.图形界面设计的步骤1.创建组件(Component):创建组成界面的各种元素,如按钮、文本框等。2.指定布局(Layout):根据具体需要排列界面上各元素的位置关系。3.响应事件(Event):定义图形用户界面的事件和各界面元素

对不同事件的响应,从而实现图形用户界面与用户的交互功能。3112.2.2颜色类、字体类、图像图标类1.颜色类Color◼属于java.awt◼每种颜色均看作是由红(R)、绿(G)、蓝(B)三色组成。◼构造方法:Color(intr,intg,intb)◼颜色常量值Color.black,Color

.blue,Color.gray,Color.redColor.white◼例如Colorc=newColor(intrgb)参数取值0——255,越大则表明这种颜色的成分越重。3212.2.2颜色类、字体类、图像图标类2.字体类Font◼用

来规范组件所用的字体样式、大小与字形等。◼构造方法:Font(Stringfont_name,intstyle,intsize)字体名称字形样式:PLAIN、BOLD、ITALIC字号大小33Font类的成员方法publicst

ringgetName():获得字体的名称publicintgetStyle():获得字体的样式publicintgetSize():获得字体的大小publicbooleanisPlain():若字体是正常型,则返回true

publicbooleanisBold():若字体是粗体,则返回truepublicbooleanisItalic():若字体是斜体,则返回true12.2.2颜色类、字体类、图像图标类3412.2.2颜色类、字体类、图像图标类3.图标图像类ImageIcon◼Java语言使用

javax.swing.ImageIcon类表示图标。表12.12给出了ImageIcon类的常用构造方法,表12.13给出了ImageIcon类的常用方法。35Java中Image类与ImageIcon类的区别Image类一般尺寸过大,不适合作ImageIcon类。ImageIconimage

Icon=newImageIcon(“duke.gif”);//Icon由图片文件形成Imageimage=imageIcon.getImage();//但这个图片太大不适合做Icon//为把它缩小点,先要取出这个Icon的image,然后缩放到合适的大小Imagesmal

lImage=image.getScaledInstance(30,20,Image.SCALE_FAST);//再由修改后的Image来生成合适的IconImageIconsmallIcon=newImageIcon(smallImage);//最后设置它为按钮的图片JButtoniconBu

tton=newJButton(smallIcon);36Java中Image类与ImageIcon类的区别而由ImageIcon类到Image类,可以通过:ImageIconimageIcon=newImageIcon(“duke

.gif”);//Icon由图片文件形成JFramejf=null;jf.setImageIcon(ImageIcon.getImage());3712.3创建组件◼12.3.1标签◼12.3.2命令按钮、复选框、单选按钮◼12.3.3文本编辑组件、滚动窗格◼1

2.3.4选项窗格3812.3.1标签JLabel◼标签用来在窗口中显示文字的控件◼在整个应用程序中,不仅把JLabel用作文本描述,还将它用作图片描述。每当在Swing应用程序中看到图片的时候,它就有可能是JLabe

l。JLabel对于Swing初学者来说没有许多意料之外的方法。3912.3.1标签JLabel基本的方法◼get/setText():获取/设置标签的文本。◼get/seticon():获取/设置标签的图片。◼•get/setHorizontalAlignmen

t():获取/设置文本的水平位置。◼•get/setVerticalAlignment():获取/设置文本的垂直位置。◼get/setDisplayedMnemonic():获取/设置标签的访问键(下划线文字)。

◼get/setLableFor():获取/设置这个标签附着的组件,所以当用户按下Alt+访问键时,焦点转移到指定的组件。40例App12_341例App12_342例App12_343例App12_4◆在框架窗口中加入指定大小的标签,并设置当鼠标悬停在标签上

时给出相应的提示信息。◆Swing中的几乎所有组件都是继承自JComponent,它提供了一个setToolTipText(Stringstr)方法,来创建工具提示。44例App12_445例App1

2_44612.3.2命令按钮、复选框、单选按钮1.命令按钮Jbutton◼用户用鼠标单击它来控制程序运行的流程。◼JButton创建后通过容器的add()将其放入容器。◼构造方法及常用方法见教材P212,213表12.16、12.1747例App12_548例App12

_54912.3.2命令按钮、复选框、单选按钮2.复选框JCheckBox、单选按钮Jbutton◼JCheckBox可以单独使用,而单选按钮必须配合javax.swing包中的ButtonGroup类将其组成单选按钮组来使用。◼如果有多

个复选框,那么也需要ButtonGroup类将其组成复选框按钮组来使用。◼重要的ButtonGroup方法是:◼add():添加JCheckBox或JRadioButton到ButtonGroup。◼getElements():获得ButtonGroup中的全部组件,允许对它们进行迭代

,找到其中选中的那个。50例App12_651例App12_6注意:ButtonGroup不是java.awt.Component的子类,所以不能添加到容器中52例App12_653例App12_65412.3.3文本编辑组件与滚动窗格1.文本行组件JTextField◼文本行组件J

TextField主要用于接收用户键盘输入的文本。◼设置文本的方法:◼get/setText(),用于获取/设置JTextField中的文本5512.3.3文本编辑组件与滚动窗格2.密码文本行组件JPasswordField◼PasswordField主要用于输

入密码◼getEchoChar():获取每次字符输入时在JPasswordField中显示的字符。默认值为“*”。◼setEchoChar():设置每次字符输入时在JPasswordField中显示的字符。◼getPassword():这是从JPasswordField中获得口令的恰当方法,因为它

返回一个包含口令的char[]。为了保证恰当的安全性,数组应当被清为0,以确保它不会保留在内存中。5612.3.3文本编辑组件与滚动窗格3.文本区组件JTextArea◼is/setLineWrap():设置

在行过长的时候是否要自动换行。◼is/setWrapStyleWord():设置在单词过长的时候是否要把长单词移到下一行。◼文本区组件JTextArea通常与滚动窗格组件JScrollPane一起使用。4.滚动窗格组

件JScrollPane◼用JTextArea调用JScrollPane的构造函数,这为JTextArea创建了在文本过长时滚动的能力:JScrollPanescroll=newJScrollPane

(getTextArea());add(scroll);57例App12_758例App12_759例App12_76012.3.4选项窗格JTabbedPane◼JTabbedPane组件中允许包含多个选项卡。◼用户选取项目的一种组件,用户利用该组件来表J

TabbedPane类的构造方法及常用方法见教材中表12.25、12.26◼例如:JTabbedPanetab=newJTabbedPane();tab.add(“Java”,newJLabel(“Java”));◼JTabbedPane类有多个addTab()方法,这里采用

了其中一种,第一个参数是页签的标题,第二个参数是页签上放置的组件,如JLabel,当然可以是任意的组件。61例App12_862例App12_863例App12_86412.4布局管理器◆布局管理即页面管理。页面管理(layout

):指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来改变组件大小与位置的一种布局方式。◆自动布局:当为一个容器指定一个布局管理器后,将一个组件加入该容器中时,布局管理器就能自动设置该组件的大小和位置。6512.4布局管理器◆java.awt包中共定义了五种布局管理器,每

个布局管理器对应一种布局策略,分别是:◼流式布局管理器FlowLayout◼边界式布局管理器BorderLayout◼卡片式布局管理器CardLayout◼网格式布局管理器GridLayout◼网格包布局管理器GridBagLayout。66

12.4布局管理器◆java.Swing包提供的布局管理器有:◼盒式布局管理器BoxLayout◼重叠布局管理器OverlayLayout◼弹簧布局管理器SpringLayout6712.4.1流式布局管理器FlowLayout◼布局策略◆组件按照

加入容器的先后顺序从左向右排列;◆一行排满后就自动地转到下一行继续从左向右排列;◆每一行中的组件都居中排列。◆默认居中对齐,可以通过FlowLayout(intalign)方法指定对齐方式6812.4.1流式布局管理器FlowLayout◼FlowLay

out布局管理器是Panel、Applet和JPanel默认的布局管理方式。◼布局管理器的容器中的组件大小不随容器大小的变化而改变.◼当容器中的组件不多时,使用这种布局策略非常方便。◼是JPanel默认的布局

管理方式。◼构造方法及常用方法见教材表12.27-12.29◼见教材例12.969例App12_970例App12_97112.4.2边界式布局管理器BorderLayout◼将显示区域按地理方位分为东(Ea

st)、西(West)、南(South)、北(North)、中(Center)五个区域。◼将组件加入容器中,若没有指定区域,则默认为中间;若将组件加入到已被占用的位置,将会取代原先的组件。7212.4.2边界式布局管理器BorderLayout◼利用add(

)添加组件时必须指出组件的摆放位置。◼是JFrame、JApplet、JDialog默认的布局管理方式。◼在BorderLayout类的定义中这5个区域用5个常量值表示:EAST、WEST、SOUTH、NORTH和CENTER。假设容器为cp组件为jb。则将组

件添加到容器上的方式为:BorderLayoutbl=newBorderLayout();Cp.add(jb,BorderLayout.CENTER);◼不是五个部分都必须添加◼中间组件会自动调节大小73例A

pp12_1074例App12_97512.4.3网格式布局管理器GridLayout◆提供的页面布局规则是将容器的空间划分成若干行与列的网格形式,在容器上添加组件时,它们会按从左到右、从上到下的顺序在网格中均匀排列

。◆网格的行数和列数可以在创建GridLayout对象的构造方法里指定。若控件数正好是行×列,则按行、列数放置;若控件数超过了行×列,则先满足行。◆利用GridLayout布局策略时,容器中各组件的宽度相同,所有组件的高度也

相同,当容器尺寸发生变化时,各组件的相对位置不变。◆构造方法及常用方法见◆教材表12.33、12.3476例App12_1177例App12_1178例App12_1179例App12_1180例App12_118112.4.4

卡片式布局管理器CardLayout页面布局方式是把“窗口容器”中的所有组件如同堆叠起来的一付“扑克牌”,每次只能显示最上面的一张一样,这个被显示的组件将占据所有的容器空间。使用add()往窗口容器中加入组件时应为每个组件赋予一个名字。依据

这个名字利用CardLayout类所提供的方法来控制其他组件是否显示。该布局方式每次仅有一个组件是可见的。利用卡片布局管理器时,通常要用到多个容器,其中一个容器使用卡片布局管理器,而另外的容器使用其它布局管理器。82例App12_1283例A

pp12_1284例App12_128512.4.5网格包布局管理器GridBagLayout◼将容器中的组件按行、列的位置摆放,但各组件所占据的空间可以是互不相同的。◼可以为每个组件指定其占据的网格数,可以保留组件原来的大小,可以按任意顺序随

意加入容器的任意位置,从而可以真正自由地安排容器中的组件的大小和位置。◼每个组件都要与一个网格包约束条件的实例对象来配合使用,该实例对象指定组件如何放置在它的显示区域内。86例App12_1387例App12_1388例App12_13

89例App12_139012.4.6盒式布局管理器BoxLayoutBoxLayout是一种Swing布局管理器,这种布局策略是在一行或一列中摆放组件。假设容器为jp,设置该容器的盒子布局管理器的方式为:jp.setLayout(new

BoxLayout(jp,BoxLayout.Y_AXIS));BoxLayout的构造函数要求把欲接受管理器控制的容器对象作为第一个参数,而第二个参数说明了组件的布局方向91例App12_149212.4.7重叠布局管理器OverlayLayout

和弹簧布局管理器SpringLayout简介◆重叠布局管理器OverlayLayout和弹簧布局管理器SpringLayout均是Swing中定义的布局管理器。◆具有OverlayLayout布局策略的容器

,将加入该容器的所有组件叠放在一起,第一个被家人容器的组件会放在容器的最前面。◆SpringLayout的主要思想是在组件的周围放置一个灵活的弹簧,这种弹簧可以压缩或伸长,把组件堆放到要求的位置。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?