JAVA图形界面教案_第1页
JAVA图形界面教案_第2页
JAVA图形界面教案_第3页
JAVA图形界面教案_第4页
JAVA图形界面教案_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第十一章、图形用户界面总论:本章学习图形界面的初步知识,包括图形界面的概述,容器类,布局管理器,辅 助类,绘图等知识点。1、图形界面的概述Java中有两个包负责图形界面的构建:swing和awt。awt包中的类主要是调用当前操作系统的组件来实现GUI编程,特点是速度快,但是跨平台性很差,称为重型组件。swing包中的类主要是模拟组件来实现 GUI编程,由于是模拟组件,所以他的速度 较慢,但跨平台性很好.称为轻型组件,swing包的类都以J开头,以示和awt包 中的类进行区分2、GUI 类分为三组:容器类(Jframe、jpanel、jdialog )、组件类(Jbutton、 jlabel )

2、和辅助类(Font、graphics、color、dimension、fontmetrics ) 这些类都是java设计人员精心设计的类,供我们直接使用。3、所有图形界面组件的关系如下:Awt中的component类是所有swing和awt类的根类Awt中的con tai ner类是所有容器类的根类Swing中的所有组件类(组件)均继承自jcomponent类第一节.容器类与布局管理器1、容器,即可以盛放其他组件的组件。主要有如下几个:Container :一个容器类,他的实例常用作接受其他的容器引用。Jframe :框架(窗体),类似于 Windows系统中的窗口。Jdialog :用来设计

3、对话框。2、JFrame类该类的对象即是一个窗口,其构造方法可以带参数(窗体名字) ,也可以不带参 数。该类有一系列的方法可以调用。见下例:例子:JFrame的基本用法1)生成一个窗口2)能够关闭生成的窗口3)让窗口居中4)加上一个按钮5)窗口和按钮上的文字所有的图形界面类都是先生成对象,然后通过对象的方法来设置界面每个类方法众多,记住最常用的,知道有其他的,边用边学。要随时查 看 API 手册。本例子的方法有:设置大小,添加组件,删除组件,设置位置,关闭窗口等Dimension 是一个类,用来把一个对象的高和宽封装到一个 Dimension对象中Toolkit 是一个工具类,能够提供一系列的

4、方法。这里获得屏幕尺寸 课本上添加组件的方法3. 布局管理器(1)布局是Java中用来控制组件排列位置的一种界面管理系统。Java界面设计没有提供所见即所得的设置组件坐标的方法( netbeans 可以做到所见即所 得)。Java 本身提供的布局管理系统来完成组件布局的任务,而且在跨平台时表现得 更有优势。( 2)先创建一个布局实例,然后使用setLayout 方法把该布局实例和某个容器绑定到一起,这样该容器就拥有这种布局方式了。FlowLayout layout=new FlowLayout(LlowLayout.LEFT,10,20)container.setLayout(layout)第

5、一句话是生成一个布局管理器对象,他规定了界面如何布局第二句话是给某个容器添加该布局管理器对象,这样该容器就具有这种布局 了。上式我们可以简洁写成:contain er.setLayout (new FlowLayout(LlowLayout.LEFT,10,20)设置好布局后,那么在往该容器组件上添加组件就会按照布局的设定的添加。(3)常用的布局有: FlowLayout 布局:只需要把组件加入到FlowLayout中,FlowLayout就会根据你添加组件的顺 序依次放置组件,如果空间不够,会自动换行。该布局有三个常量来指定组件的对齐方式:FLOWLayout.RIGHTFLOWLayout

6、.CENTE和 FLOWLayout.LEFT此外还有三个构造方法:Public FLOWLayout (int align,int hGap ,int vGap )该方法根据指定的对齐方式、水平间距和垂直间距构造一个新的FLOWLayout对象,间距的单位是像素。Public FLOWLayout (int align )只是指定的对其方式,水平和垂直间距默认为5像素Public FLOWLayout ()没有任何指定,则对齐方式默认居中,水平和垂直间距默认为5像素例子:ShowFlowLayout GridLayout :将用户界面切割为棋盘一样的布局管理系统。如果我们要设计一个类似于 W

7、indows中自带的计算器软件,GridLayout无疑是最佳选择。其构造方法:Public GridLayout(i nt rows,i nt clol umn s,i nt hGap,i nt vGap)该方法根据指定的行数和列数来构造安排对象,但是行列不可同时为0如果行列其一为0,那么不为零的固定,为零的由布局管理器动态的决定,如果行列 均不为零,那么行是主要参数,列会动态决定。若没有水平和垂直参数则默认为 0,若没有行列参数则默认一行。例子:GridLayOut BorderLayout :将界面分割为上下左右以及中间一块区域的管理系统,在BorderLayout布局 中,最多你只能放

8、5个组件,如果超过5个组件,建议还是选用其他的布局系统可以使用add(componet,ndex )方法把组件添加到布局管理器中,其中index 是一个常量有:BorderLayout.EAST,SOUTH,WEST,NORTH,CENTE个。构造方法两个:Public BorderLayout(int hGap ,int vGap )Public BorderLayout()例子:BorderLayOut第二节面板和在面板上绘图一些较为复杂的界面用上述的布局管理器很难完成,需要配合JPanel容器才可以做到1、JPanel类:面板,一种容器,不可见,可以盛放其他组件,一般我们把面板 放到窗体

9、上,然后把其他组件放到面板上,这样可以做出复杂的界面。例子:TestJPanel2、在JPanel上绘图JPanel除了可以作为容器,还可以在其上绘图。JPanel有一个paintComponent方法,该方法提供了画笔类(Graphics ),拿到画笔我们就可以绘图了例子:draw继承了 JPanel类,那么就可以重写他的paintComponent方法。在该方法里 提供了画笔,我们利用画笔的各种方法来绘图。绘图方法有g.drawString(你好,40, 40);画出一个字符串,提供参数字符串和字 符串的出现位置。g.drawLine(20,20, 40, 40);画一条直线,提供参数直线

10、的起点和终点g.drawOval(50, 50, 10, 10);画一个圆或者椭圆,提供参数圆的邻接矩 形的左上角坐标,和高宽。g.drawRect(10, 10, 20, 20);画一个矩形,提供参数矩形的左上角点的 坐标和矩形的高宽。g.drawArc(150, 100, 50, 50, 0, 90);画一个弧,提供参数和圆一样,只是多了两个弧度参数即起始角和生成角的弧度。g.drawPolygon(x, y, 4);画一个多角形,提供参数多角形顶点的坐标数 组和顶点个数。还可以画出有填充色的图形g.fillOval(80, 80, 50, 50);画一个带有填充色的圆draw画出的图形都

11、没有填充色,fill画出的都有以上画图颜色都是黑色,即默认色,可以设置画笔颜色g.setColor(Color.red);Color是一个辅助类,显示颜色。以后讲第三节.辅助类辅助类包括字体,颜色等设置。如下:( 1) 颜色类 Color使用 java.awt.color类为 GUI 组件设置颜色,颜色表示可以用三原色分量表示,即 r ,g,b 三个原色取值范围是 0255,任意组合构成一中颜 色。也可以用一些常量来表示:共 13 种( black,blue,cyan,darkGray,gray,green,lightGray,magenta,orange, pink,red,white,ye

12、llow )。下面例子分别使用了两个方法设置颜色: ColorDemo.java( 2) 字体类 Font使用 java.awt.font 类创建并使用字体对象,该类构造方法是Font(String fontName, int fontStyle, int pointSize)在这里,参数 fontname 指定了希望使用的字体的名字。这个名字既可以 是逻辑名也可以是外形名。所有的Java环境都将支持如下的字体:Dialog,DialogInput, Sans Serif, Serif,Monospaced, 以及 Symbol。 Dialog 是你的系 统对话框使用的字体。如果你不明确的指定

13、字体,Dialog也是默认的字体。 你也可以用任何其他被你的特殊环境支持的字体, 但是请小心, 这些字体 未必都是可用的。字体的样式是由参数 fontstyle 指定的。它可以由 Font.PLAIN , Font.BOLD 以及 Font.ITALIC 这三个常量中的一个和多个组成。为了结合各种样式, 可以把它们用or连接在一起。例如,Font.BOLD | Font.lTALIC指定了一 个由粗体和斜体组成的样式。以磅为单位的字体,大小由 pointsize 指定。 为了使用你创建的字体,你必须通过调用setFont( )方法来选择该字体例子: FontDemo(3) Dimension 类Dimension类将组件的宽度和咼度封装在一个单个对象中 实践 为了让大家练习图形界面的制作,从本节课开始,我们以连连看游戏的界面为目 标,做一个类似的界面。今天先做一部分,后面随着课程的深入逐步改进,直到 完成这个界面,但是游戏功能不具体实现连连看游戏界面如下:由于容器组件中可以放置其他组件,因此,我们只需要先确定放置的容器组件 然后进入布局管理系统的选择。这里选择BorderLayout,

温馨提示

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

评论

0/150

提交评论