Java图形界面设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java图形界面设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 图形界面 设计 课件
- 资源描述:
-
1、第第1212章章图形界面设计图形界面设计1本章主要内容n12.1 图形用户界面设计图形用户界面设计n12.2 图形用户界面工具包图形用户界面工具包Swingn12.3 创建组件创建组件n12.4 布局管理器布局管理器212.1 图形用户界面设计图形用户界面设计n图形用户界面图形用户界面(Graphics User Interface,GUI)n用图形的方式,借助菜单。按钮等标准界面元素用图形的方式,借助菜单。按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果同样以图指令、启动操作,并将系统运行的结果同样以图形
2、方式显示给用户的技术。形方式显示给用户的技术。nJava的的GUI程序设计是程序设计是Java程序设计的基础。程序设计的基础。312.1 图形用户界面设计图形用户界面设计nJava提供的两个处理图形用户界面的类库提供的两个处理图形用户界面的类库:Java.awt包和包和javax.swing包包 Sun已经提供了一个跨平台已经提供了一个跨平台GUI开发工具包开发工具包java.awt(抽(抽象窗口工具箱)象窗口工具箱)Sun又开发了一个新的又开发了一个新的GUI开发工具包开发工具包javax.swing解决了解决了awt中存在的本地化中存在的本地化问题问题412.1 图形用户界面设计图形用户界
3、面设计nAWT 和和 Swing 是是 Java 设计设计 GUI 用户界面的基础用户界面的基础.n与与AWT 的重量级组件不同的重量级组件不同,Swing 中大部分是中大部分是轻量级组轻量级组件件。正是这个原因正是这个原因,Swing 几乎无所不能几乎无所不能,不但有各式各不但有各式各样先进的组件样先进的组件,而且更为美观易用而且更为美观易用.所以一开始使用所以一开始使用 AWT 的程序员很快就转向使用的程序员很快就转向使用 Swing 了了。n但是但是因为因为 Swing 是架构在是架构在 AWT 之上的之上的,没有没有 AWT 就没就没有有 Swing。所以程序员可以根据自己的习惯选择使
4、用所以程序员可以根据自己的习惯选择使用 AWT 或者是或者是 Swing。n但是但是,最好不要二者最好不要二者 混用混用除开显示风格不同不说除开显示风格不同不说,还很还很可能造成层次可能造成层次(Z-Order)错乱错乱512.2图形用户界面工具包图形用户界面工具包SwingnJava图形用户界面的基本元素包括:图形用户界面的基本元素包括:n用户界面组件(组件类)用户界面组件(组件类)n事件处理模块(事件类)事件处理模块(事件类)n图形和图像工具(图形类、图像类)图形和图像工具(图形类、图像类)n布局管理器(布局类)布局管理器(布局类)n它们主要都在它们主要都在javax.swing包中,包中
5、,Swing是是Java包的一部分。包的一部分。6712.2.1 Swing组件分类组件分类n组件:构成图形用户界面的各种元素。组件:构成图形用户界面的各种元素。n构建图形用户界面的类可以分成三组:构建图形用户界面的类可以分成三组:n容器类容器类(container class)n辅助类辅助类(helper class)n组件类组件类(component class)。812.2.1 Swing组件分类组件分类容器类容器类n容器类组件中可以包含其他组件,也可以包含其他容器。容器类组件中可以包含其他组件,也可以包含其他容器。n容器又分为两种:容器又分为两种:顶层容器顶层容器和和非顶层容器非顶层容
6、器。n顶层容器是可以独立的窗口,顶层容器是可以独立的窗口,Swing的顶层容器有的顶层容器有JFrame、JApplet和和JDialog等等。n非顶层容器,不是独立的窗口,它们必须位于窗口之内,非顶层容器,不是独立的窗口,它们必须位于窗口之内,非顶层容器包括非顶层容器包括JPanel及及JScrollPanel等。等。912.2.1 Swing组件分类组件分类n辅助类和组件类都属于非容器类组件不能包含其他组件的辅助类和组件类都属于非容器类组件不能包含其他组件的组件,其种类较多。组件,其种类较多。n辅助类辅助类n辅助类是用来辅助类是用来描述组件属性描述组件属性的,辅助类通常包含在的,辅助类通常
7、包含在java.awt包中,包中,Swing组件不能取代组件不能取代AWT的全部类,的全部类,只能替代只能替代AWT的的GUI组件类,组件类,AWT辅助类保持不变。辅助类保持不变。n组件类组件类n所有所有Swing GUI组件类(除组件类(除JFrame、JApplet和和JDialog)都是)都是JComponent类的子类,例如,类的子类,例如,JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和和JMenu等。等。nSwing轻型组件分类参见教材轻型组件分类参见教材P202 表表12.11012.2.1 Swing组件分类组
8、件分类n一般独立应用程序主要是要框架一般独立应用程序主要是要框架JFrame作为容器,作为容器,在在JFrame上通过放置上通过放置JPanel面板来控制图形界面板来控制图形界面的布局;面的布局;n如果应用到浏览器中,则主要使用如果应用到浏览器中,则主要使用JApplet来做容来做容器。器。JApplet是一个能够嵌入到浏览器中运行的特是一个能够嵌入到浏览器中运行的特殊容器。殊容器。1112.2.1 Swing组件分类组件分类1.Swing容器的层次关系容器的层次关系一般的一般的Swing窗口,实际上包含几个窗口,实际上包含几个“层次层次”。1212.2.1 Swing组件分类组件分类1.Sw
9、ing容器的层次关系容器的层次关系一般的一般的Swing窗口,实际上包含几个窗口,实际上包含几个“层次层次”,各个层的关,各个层的关系如教材系如教材P202 图图12.2所示。所示。n顶层容器。顶层容器。是一个窗口容器对象,该对象包含了是一个窗口容器对象,该对象包含了Swing窗窗口的各个层次,在该对象里面可以加入其它窗口对象。口的各个层次,在该对象里面可以加入其它窗口对象。n根窗格。根窗格。是在创建顶层容器后自动创建的,供是在创建顶层容器后自动创建的,供Swing顶层顶层容器在后台使用,是顶层容器中做包含的最内层,通常无容器在后台使用,是顶层容器中做包含的最内层,通常无法在这一层上做任何操作
10、与处理。法在这一层上做任何操作与处理。n分层窗格。分层窗格。加入分层窗格中的组件可以设置其图层层次,加入分层窗格中的组件可以设置其图层层次,且不会被内容窗格中的对象屏蔽。是其它窗格的父级。且不会被内容窗格中的对象屏蔽。是其它窗格的父级。1312.2.1 Swing组件分类组件分类n菜单栏。菜单栏。菜单栏被添加到分层窗格的顶部。是可选的。菜单栏被添加到分层窗格的顶部。是可选的。n内容窗格。内容窗格。是分层窗格中的某一层,是一个是分层窗格中的某一层,是一个JPanel对象,对象,在窗体中起着工作区的作用。可以放置大部分的可见组件。在窗体中起着工作区的作用。可以放置大部分的可见组件。n玻璃窗格玻璃窗
11、格。主要用来产生绘图效果,以及用来触发窗口程。主要用来产生绘图效果,以及用来触发窗口程序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏的。的。1412.2.1 Swing组件分类组件分类1512.2.1 Swing组件分类组件分类2.框架类框架类JFramen是是Java应用程序的顶层容器。应用程序的顶层容器。nJFrame是是java.awt.Frame的扩展版本,是一个的扩展版本,是一个window子类,在使用子类,在使用Swing类库实现用户图形接口,必须继承该类库实现用户图形接口,必须继承该类类。nJFrame容器包括窗口标题、窗口外
12、观、窗口边界、调整容器包括窗口标题、窗口外观、窗口边界、调整窗口大小的图标、关闭和最小化窗口的图标。并且可以直窗口大小的图标、关闭和最小化窗口的图标。并且可以直接在容器上添加组件,如按钮、文本等接在容器上添加组件,如按钮、文本等。1612.2.1 Swing组件分类组件分类构造方法:构造方法:npublic JFrame()throws HeadlessException。创建了一个新的容器窗口,默认该窗口是不可见的。创建了一个新的容器窗口,默认该窗口是不可见的。npublic JFrame(String title)throws HeadlessException 创建一个新的容器窗口,通过
13、方法的参数设置窗口标题,创建一个新的容器窗口,通过方法的参数设置窗口标题,该窗口默认是不可见的。该窗口默认是不可见的。1712.2.1 Swing组件分类组件分类该类的常用方法该类的常用方法(P203-204)ngetContentPane()该方法返回一个框架对象,使用该框架对象来添加组件,如该方法返回一个框架对象,使用该框架对象来添加组件,如增加按钮、菜单、工具栏、列表框等组件。增加按钮、菜单、工具栏、列表框等组件。nsetSize(int width,int hight)设置窗口尺寸、窗口大小以像素为单位计算。设置窗口尺寸、窗口大小以像素为单位计算。ngetJMenuBar()返回此窗体
14、上设置的菜单栏。返回此窗体上设置的菜单栏。nsetJMenuBar(JMenuBar menubar)设置此窗体的菜单栏。设置此窗体的菜单栏。nsetIconImage(Image image)设置要作为此窗口图标显示的图像。设置要作为此窗口图标显示的图像。18例例App12_1辅助类辅助类组件类组件类19例例App12_1为什么在该实例中被没有显示背景为什么在该实例中被没有显示背景色?色?JFrameJFrame默认采用了默认采用了FlowLayoutFlowLayout布局布局管理器,你的组件在该布局管理器管理器,你的组件在该布局管理器中被塞满整个中被塞满整个frameframe,挡住了背
15、景。,挡住了背景。就是说,实际上就是说,实际上JFrameJFrame还是有背景还是有背景的一般用的一般用JFrameJFrame的时候要初始化一的时候要初始化一个个JPanelJPanel,把组件放在,把组件放在JPanelJPanel里,里,然后把然后把JPanelJPanel放到放到JFrameJFrame里,这样里,这样可以较好的控制组建位置等其他的可以较好的控制组建位置等其他的东西。在这种方式下直接给东西。在这种方式下直接给JPanelJPanel设置设置setBackgroundsetBackground就可以一直看就可以一直看到背景了到背景了命令提示符环境命令提示符环境20例例A
16、pp12_1_121例例App12_1_1例例App12_1_22212.2.1 Swing组件分类组件分类3.面板类面板类JPaneln面板是一种没有标题栏、没有边框的中间层容器,在该容面板是一种没有标题栏、没有边框的中间层容器,在该容器上可以放置其他组件如单选按钮、列表框等。还可以包器上可以放置其他组件如单选按钮、列表框等。还可以包含其他容器,如一个新的含其他容器,如一个新的JPanel对象,从而方便地实现容对象,从而方便地实现容器的嵌套。器的嵌套。n在面板创建后是无法单独显示的。面板不是顶层容器,必在面板创建后是无法单独显示的。面板不是顶层容器,必须放到其他容器内,也可以放入另一个面板内
17、。必须放在须放到其他容器内,也可以放入另一个面板内。必须放在JFrame或或Applet这样的顶层窗口中才可以显示。这样的顶层窗口中才可以显示。n一个界面只可以有一个一个界面只可以有一个JFrame窗体组件,但可以有多个窗体组件,但可以有多个JPanel面板组件面板组件2312.2.1 Swing组件分类组件分类3.面板类面板类JPanel该类的构造函数:该类的构造函数:nJPanel():创建一个面板,并且该面板组件的布局管理器:创建一个面板,并且该面板组件的布局管理器为为FlowLayout()。nJPanel(LayoutManager layout):创建一个面板,且该:创建一个面板,
18、且该面板设置了指定的布局管理器。布局管理器管理在容器上面板设置了指定的布局管理器。布局管理器管理在容器上放置的组件,具体的内容会在放置的组件,具体的内容会在12.4节详细介绍。节详细介绍。2412.2.1 Swing组件分类组件分类3.面板类面板类JPanel常用方法:常用方法:nJPanel默认的布局管理器是默认的布局管理器是FlowLayout,可以使用,可以使用setLayout()方法改变其默认布局。方法改变其默认布局。n也可以采用包含它的容器不同的布局管理器。也可以采用包含它的容器不同的布局管理器。25例例App12_2在框架中加入面板在框架中加入面板26例例App12_2在框架中加
19、入面板在框架中加入面板27例例App12_2在框架中加入面板在框架中加入面板2812.2.1 Swing组件分类组件分类4.组件类组件类n又称控制组件(控件),它里面不能包含其他组件。又称控制组件(控件),它里面不能包含其他组件。n作用:完成与用户的交互,包括接收用户的命令、接收用作用:完成与用户的交互,包括接收用户的命令、接收用户输入的文本或用户的选择、向用户显示文本或图形。户输入的文本或用户的选择、向用户显示文本或图形。n常用控件:命令类、选择类、文字处理类等。常用控件:命令类、选择类、文字处理类等。2912.2.1 Swing组件分类组件分类5.图形界面设计的步骤图形界面设计的步骤1.创
20、建组件创建组件(Component):创建组成界面的各种元素,如:创建组成界面的各种元素,如按钮、文本框等。按钮、文本框等。2.指定布局指定布局(Layout):根据具体需要排列界面上各元素的:根据具体需要排列界面上各元素的位置关系。位置关系。3.响应事件响应事件(Event):定义图形用户界面的事件和各界面元:定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的素对不同事件的响应,从而实现图形用户界面与用户的交互功能。交互功能。3012.2.2 颜色类、字体类、图像图标类颜色类、字体类、图像图标类1.颜色类颜色类Colorn属于属于java.awtn每种颜色均看作
21、是由红每种颜色均看作是由红(R)、绿、绿(G)、蓝、蓝(B)三色组成。三色组成。n构造方法:构造方法:Color(int r,int g,int b)n颜色常量值颜色常量值 Color.black,Color.blue,Color.gray,Color.red Color.white n例如例如 Color c=new Color(int rgb)参数取值参数取值0255,越大则表明这种,越大则表明这种颜色的成分越重。颜色的成分越重。3112.2.2 颜色类、字体类、图像图标类颜色类、字体类、图像图标类2.字体类字体类Fontn用来规范组件所用的字体样式、大小与字形等。用来规范组件所用的字体样
22、式、大小与字形等。n构造方法:构造方法:Font(String font_name,int style,int size)字体名称字体名称字形样式:字形样式:PLAIN、BOLD、ITALIC字号大小字号大小32Font类的成员方法类的成员方法 public string getName():获得字体的名称:获得字体的名称 public int getStyle():获得字体的样式获得字体的样式 public int getSize():获得字体的大小获得字体的大小 public boolean isPlain():若字体是正常型,则返回若字体是正常型,则返回true public boole
23、an isBold():若字体是粗体,则返回若字体是粗体,则返回true public boolean isItalic():若字体是斜体,则返回若字体是斜体,则返回true12.2.2 颜色类、字体类、图像图标类颜色类、字体类、图像图标类3312.2.2 颜色类、字体类、图像图标类颜色类、字体类、图像图标类3.图标图像类图标图像类ImageIconnJava语言使用语言使用javax.swing.ImageIcon类表示图标。类表示图标。表表12.12给出了给出了ImageIcon类的常用构造方法,表类的常用构造方法,表12.13给出了给出了ImageIcon类的常用方法。类的常用方法。34
24、Java中中Image类与类与ImageIcon类的区别类的区别 Image类一般尺寸过大,不适合作类一般尺寸过大,不适合作ImageIcon类。类。ImageIcon imageIcon=new ImageIcon(“duke.gif”);/Icon由图片文件形成由图片文件形成Image image=imageIcon.getImage();/但这个图片太大不适合做但这个图片太大不适合做Icon/为把它缩小点,先要取出这个为把它缩小点,先要取出这个Icon的的image,然后缩放到合适的大小然后缩放到合适的大小Image smallImage=image.getScaledInstance(
展开阅读全文