第6章Java图形用户界面_第1页
第6章Java图形用户界面_第2页
第6章Java图形用户界面_第3页
第6章Java图形用户界面_第4页
第6章Java图形用户界面_第5页
已阅读5页,还剩40页未读, 继续免费阅读

下载本文档

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

文档简介

1、第第6章章Java图形用户界面图形用户界面第第6 6章章 JavaJava图形用户界面图形用户界面6.1 图形用户界面概述和图形用户界面概述和java.awt6.2 字体和颜色的设置、图形绘制和图像显示字体和颜色的设置、图形绘制和图像显示 6.3 Graphics2D画图简介画图简介第第6章章Java图形用户界面图形用户界面6.1 图形用户界面概述和图形用户界面概述和java.awt包简介包简介n图形用户界面图形用户界面GUI(Graphics User Interface),就是应用程序提供给用户操作的图形界面,包括窗就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各

2、种界面元素。口、菜单、按钮、工具栏和其他各种界面元素。n在在Java里有两个包为里有两个包为GUI设计提供了丰富的功能:设计提供了丰富的功能:awt(abstract windows toolkit)包和包和swing包。包。 awt是是java GUI的早期版本,组件种类有限,只提供基的早期版本,组件种类有限,只提供基本的本的GUI设计类。设计类。 swing包是包是SUN公司对早期版本的改进版本,它提供了公司对早期版本的改进版本,它提供了更加丰富的组件和功能。更加丰富的组件和功能。 swing会用到会用到awt中许多知识,学习中许多知识,学习awt包是学习包是学习GUI编编程的基础。程的基

3、础。第第6章章Java图形用户界面图形用户界面java.awt包中的一些常用类包中的一些常用类Object类类 java所有类的父类(所有类的父类(java的基类)的基类)Font 字体类字体类Color 颜色类颜色类Graphics 几何绘图类几何绘图类Componet 组件类组件类CheckboxGroup 按钮组合按钮组合FlowLayout 布局管理器布局管理器BorderLayout 边界布局管理器边界布局管理器GridLayout 网格布局管理器网格布局管理器GridBagLayout 网袋布局管理器网袋布局管理器Event 事件处理类事件处理类MenuComponet 菜单组件类

4、菜单组件类第第6章章Java图形用户界面图形用户界面GUI组件分类组件分类在在AWT的概念中,窗口系统中所显示的各种对象都的概念中,窗口系统中所显示的各种对象都统称为统称为“GUI组件组件”(Component)。组件有基本)。组件有基本组件和容器组件之分。组件和容器组件之分。n 基本组件是不能包含其它组件的组件,是构成图基本组件是不能包含其它组件的组件,是构成图形用户界面的基本元素。形用户界面的基本元素。n 容器组件是用来包含其他组件的,故称之为容器容器组件是用来包含其他组件的,故称之为容器(container)。用户可以把各种组件放入到容器中,)。用户可以把各种组件放入到容器中,也可以把容

5、器放到另一个容器中,从而形成具有层也可以把容器放到另一个容器中,从而形成具有层次的组件结构。次的组件结构。 第第6章章Java图形用户界面图形用户界面 组件类组件类(Component)容器类容器类(Container)基本组件类基本组件类面板类面板类panel窗体类窗体类windowsApplet 小程序类小程序类Frame 框架类框架类Dialog 对话框类对话框类Checkbox 单选按钮与复选按钮单选按钮与复选按钮Label 标签类标签类Button 按钮类按钮类TextComponet 文本组件类文本组件类List 列表类列表类Canvas 画布类画布类Scrollbar 滚动条类滚

6、动条类无边框无边框有边框有边框第第6章章Java图形用户界面图形用户界面6.2 字体和颜色的设置、图形绘制和图像显示字体和颜色的设置、图形绘制和图像显示6.2.1 设置字体设置字体一、创建一、创建Font类的对象类的对象Font(String name,int style,int size)Font.PLAINFont.BOLDFont.ITALIC使用使用java.awt包中的包中的Font类的构造函数创建字体类的对象。类的构造函数创建字体类的对象。例:例:Font font1=new Font(“楷体楷体_GB2312”,Font.BOLD+Font.ITALIC,50);第第6章章Jav

7、a图形用户界面图形用户界面二、设置字体二、设置字体public void setFont(Font font) -设置字体设置字体public Font getFont() -返回当前字体对象返回当前字体对象字体的创建和设置应在显示前进行,否则以系统默认字体显示。字体的创建和设置应在显示前进行,否则以系统默认字体显示。第第6章章Java图形用户界面图形用户界面例例1:编写一个简单的设置字体的程序,将字体设置为宋:编写一个简单的设置字体的程序,将字体设置为宋体、黑体,大小为体、黑体,大小为30个像素,并在小程序窗口输出。个像素,并在小程序窗口输出。/TestFont.javaimport jav

8、a.applet.Applet;import java.awt.Graphics;import java.awt.Font;public class TestFont extends Applet public void paint(Graphics g) Font font1=new Font(宋体宋体,Font.BOLD,30);g.setFont(font1);String s=中国北京中国北京;g.drawString(s,10,30); Graphics.drawstring(String str,int x,int y),其中,其中的坐标的坐标x和和y指的是整个文本块显示时左下角的

9、位置。指的是整个文本块显示时左下角的位置。第第6章章Java图形用户界面图形用户界面/page1.htmlJava 小程序小程序第第6章章Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面for(int i=0;is.length();i+) g.drawString(+s.charAt(i),10,35+i*30);若将例若将例1中的中的g.drawString(s,10,30);替换为替换为并将并将page1.html中的中的WIDTH=200 HEIGHT=60改为改为WIDTH=200 HEIGHT=150结果会怎样?结果会怎样?

10、思考:思考:第第6章章Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面6.2.2 设置颜色设置颜色利用利用java.awt包中的包中的Color类可以创建颜色类的对象。类可以创建颜色类的对象。一、创建一、创建color对象对象public Color(int r,int g,int b)public Color(int r,int g,int b,int a)第一种是用第一种是用r,g,b值创建一种不透明的颜色。第二种是用值创建一种不透明的颜色。第二种是用r,g,b值创值创建一种透明的颜色,建一种透明的颜色,a表示透明度。参数取值为表示

11、透明度。参数取值为0255。public Color(float r,float g,float b)public Color(float r,float g,float b,float a)第一种是用第一种是用r,g,b值创建一种不透明的颜色。第二种是用值创建一种不透明的颜色。第二种是用r,g,b值创值创建一种透明的颜色,建一种透明的颜色,a表示透明度。参数取值为表示透明度。参数取值为0.0f1.0f。第第6章章Java图形用户界面图形用户界面二、二、Color类的颜色常量类的颜色常量Color类共有类共有13种颜色常量,使用的时候可以查询种颜色常量,使用的时候可以查询API文档。文档。如:

12、如:Color.RED表示红色表示红色第第6章章Java图形用户界面图形用户界面三、设置颜色三、设置颜色public void setColor(Color c) -设置颜色设置颜色public Color getColor() 返回当前颜色对象返回当前颜色对象public int getRed() 得到当前颜色对象的得到当前颜色对象的red值值public int getGreen() 得到颜色对象的得到颜色对象的green值值public int getBlue() 得到颜色对象的得到颜色对象的blue值值public int getAlpha()-得到颜色对象的得到颜色对象的alpha值

13、。值。第第6章章Java图形用户界面图形用户界面例例2. 编写一个颜色设置的程序。编写一个颜色设置的程序。/TestColor.javaimport java.applet.Applet;import java.awt.*;public class TestColor extends Applet public void init() setBackground(Color.black); public void paint(Graphics g) Color c1=new Color(255,0,0); Color c2=new Color(255,0,0,128); Color c3=Co

14、lor.pink;第第6章章Java图形用户界面图形用户界面 Font font1=new Font(宋体宋体,Font.BOLD+Font.ITALIC,15); String s=中国北京中国北京; g.setColor(c1); g.setFont(font1); g.drawString(红色红色+s,10,20); g.setColor(c2); g.drawString(红色红色+s,10,40); g.setColor(c3); g.drawString(粉色粉色+s,10,60); 第第6章章Java图形用户界面图形用户界面/page2.htmlJava 小程序小程序第第6章章

15、Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面6.2.3 字符数组和字节数组的显示字符数组和字节数组的显示以下三个方法是以下三个方法是Graphics类(该类在类(该类在java.awt包中)的方法。包中)的方法。1. 绘制字符串绘制字符串public void drawString(String str, int x, int y)坐标点(坐标点(x,y)与要绘制的字符串)与要绘制的字符串Str左下角对应。左下角对应。2.绘制字符数组绘制字符数组public void drawChars(Char chars ,int offset

16、,int number,int x,int y)参数参数offset是数组的起始下标,参数是数组的起始下标,参数number是要绘制的元是要绘制的元素个数,坐标点(素个数,坐标点(x,y)含义同上。)含义同上。第第6章章Java图形用户界面图形用户界面3.绘制字节数组绘制字节数组public void drawBytes(Char bytes ,int offset,int number,int x,int y)含义同字符数组。含义同字符数组。第第6章章Java图形用户界面图形用户界面例:编写程序,显示字符数组和字节数组例:编写程序,显示字符数组和字节数组 。/ DrawCharByte.ja

17、vaimport java.applet.*;import java.awt.*;public class DrawCharByte extends Applet public void init() setBackground(Color.black); public void paint(Graphics g) String s=中国北京中国北京; g.setColor(Color.red); g.drawString(s,20,40);第第6章章Java图形用户界面图形用户界面 char ch=new charA,B,C,D,E; g.setColor(Color.white); g.d

18、rawChars(ch,0,5,80,40); byte byt=new byte65,66,67,68,69; g.setColor(Color.yellow); g.drawBytes(byt,0,3,82,42); 第第6章章Java图形用户界面图形用户界面/page3.javaJava 小程序小程序第第6章章Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面6.2.4 java的图形绘制的图形绘制预备知识预备知识:nJava图形界面窗口的坐标原点(图形界面窗口的坐标原点(0,0)在窗口左上角,水平)在窗口左上角,水平向右为向右为x

19、的正方向,垂直向下为的正方向,垂直向下为y的正方向,坐标值单位是像素。的正方向,坐标值单位是像素。n小程序窗口的坐标系同上,通过小程序窗口的坐标系同上,通过getSize()方法可得到小程序方法可得到小程序窗口界面的宽和高。窗口界面的宽和高。小程序窗口宽小程序窗口宽w:int w=getSize().width;小程序窗口高小程序窗口高h:int h=getSize().height;第第6章章Java图形用户界面图形用户界面1.画直线画直线public void drawLine(int x1,int y1,int x2,int y2);功能:在点(功能:在点(x1,y1)和()和(x2,y

20、2)之间画直线。)之间画直线。2.画矩形画矩形(1)画矩形)画矩形public void drawRect(int x,int y,int width,int height);功能:以给定坐标(功能:以给定坐标(x,y)为左上角坐标,画宽度)为左上角坐标,画宽度为为width,高度为,高度为height的矩形的矩形(2)用当前设置的颜色画填充矩形)用当前设置的颜色画填充矩形public void fillRect(int x,int y,int width,int height);第第6章章Java图形用户界面图形用户界面(3)画圆角矩形)画圆角矩形public void drawRoundR

21、ect(int x, int y,int width,int height,int arcWidth,int arcHeight)public void fillRoundRect(int x, int y,int width,int height,int arcWidth,int arcHeight)前前4个参数的意义同上,第个参数的意义同上,第5,6个参数个参数arcWidth和和arcHeight分别为水平方向圆弧总宽度、垂直方向圆弧总宽度。分别为水平方向圆弧总宽度、垂直方向圆弧总宽度。注:若圆弧的宽度和高度分别等于矩形的宽度和高度,注:若圆弧的宽度和高度分别等于矩形的宽度和高度,则绘制

22、的是椭圆。则绘制的是椭圆。第第6章章Java图形用户界面图形用户界面(4).画画3D矩形矩形public void draw3DRect(int x,int y,int width,int height,boolean bool);public void fill3DRect(int x,int y,int width,int height,boolean bool);功能:绘制一个有立体感的矩形,当功能:绘制一个有立体感的矩形,当bool为为true时,矩形为时,矩形为突出的;当突出的;当bool为为false时,矩形为凹陷的。时,矩形为凹陷的。第第6章章Java图形用户界面图形用户界面3.

23、画椭圆和圆弧画椭圆和圆弧 (1)画椭圆)画椭圆public void drawOval(int x,int y,int width,int height);public void fillOval(int x,int y,int width,int height);功能:功能:x,y是椭圆外切矩形左上角的坐标;参数是椭圆外切矩形左上角的坐标;参数width和和height是椭圆外切矩形的宽和高。上面的两个方法分别画椭是椭圆外切矩形的宽和高。上面的两个方法分别画椭圆和画填充的椭圆圆和画填充的椭圆 (2)画圆弧)画圆弧public void drawArc(int x,int y,int widt

24、h,int height,int startAngle,int arcAngle);public void fillArc(int x,int y,int width,int height,int startAngle,int arcAngle);第第6章章Java图形用户界面图形用户界面功能:前功能:前4个参数同画椭圆的参数;后两个参数含义个参数同画椭圆的参数;后两个参数含义startAngle是弧的起始角度,是弧的起始角度,arcAngle表示从起始角度算起表示从起始角度算起转多少度。逆时针为正,顺时针为负,他们的单位都是度,转多少度。逆时针为正,顺时针为负,他们的单位都是度,取值为取值为

25、0到到360度之间,若超过则取度之间,若超过则取360的余数。的余数。第第6章章Java图形用户界面图形用户界面例例4. 编写程序演示画填充的椭圆和填充的扇形。编写程序演示画填充的椭圆和填充的扇形。/ DrawOval.javaimport java.applet.*;import java.awt.*;public class DrawOval extends Applet public void paint(Graphics g) g.setColor(Color.BLUE);g.drawRect(20,20,100,60);g.setColor(Color.RED);g.fillOval

26、(20,20,100,60);g.setColor(Color.BLACK);g.drawOval(140,20,100,60);g.fillArc(140,20,100,60,0,60); 第第6章章Java图形用户界面图形用户界面/page4.htmlJava 小程序小程序第第6章章Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面6.2.5 图像的显示图像的显示一、声明和获取一个图像类的对象一、声明和获取一个图像类的对象1.定义一个图像类的对象定义一个图像类的对象Image pic;2. 获取一个图像的对象获取一个图像的对象这里只介

27、绍小程序中获取图像的方法。这里只介绍小程序中获取图像的方法。public Image getImage(URL url,String name);该方法是该方法是java.applet.Applet类提供的方法,用于从文件类提供的方法,用于从文件加载图像到内存,以便显示图像。加载图像到内存,以便显示图像。第第6章章Java图形用户界面图形用户界面name:图像名称,:图像名称, 格式可以是格式可以是gif、jpg和和png等。等。URL:图像存放目录。:图像存放目录。URLgetDocumentBase() -图像存放在图像存放在HTML文档目录下或其子目录下时,文档目录下或其子目录下时, 使

28、用该方法指明图像路径。使用该方法指明图像路径。getCodeBase() -图像存放在程序代码所在目录下或其子目录下时,图像存放在程序代码所在目录下或其子目录下时, 使用该方法指明图像路径。使用该方法指明图像路径。第第6章章Java图形用户界面图形用户界面3. 得到指定图像的高度及宽度得到指定图像的高度及宽度int getHeight(ImageObserver observer)int getWidth(ImageObserver observer)参数observer是加载图像时的图像观察器,一般是在本是加载图像时的图像观察器,一般是在本类显示,其值为类显示,其值为this。如如 Imag

29、e pic=getImage(getCodeBase(),”a.jpg”); int w,h; w=pic.getWidth(this); h=pic.getHeight(this);第第6章章Java图形用户界面图形用户界面二、显示图像的方法二、显示图像的方法1、以图像本身的大小显示图像、以图像本身的大小显示图像public boolean drawImage(Image img,int x,int y,ImageObserver observer)说明:参数说明:参数x,y是被显示的图像在窗口左上角的图标。是被显示的图像在窗口左上角的图标。2、放大或缩小显示图像、放大或缩小显示图像publ

30、ic boolean drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)说明:这里的说明:这里的width和和height表示图像在窗口显示的尺寸。表示图像在窗口显示的尺寸。第第6章章Java图形用户界面图形用户界面例例5.编写程序,演示按原图大小显示图像,缩小为原图编写程序,演示按原图大小显示图像,缩小为原图一半显示图像。一半显示图像。import java.applet.*;import java.awt.*;public class ShowImage extends Applet pu

31、blic void paint(Graphics g) Image pic=getImage(getCodeBase(),计算计算.gif);int w=pic.getWidth(this);int h=pic.getHeight(this);int d=5;g.drawImage(pic,0,0,this);/原图大小显示原图大小显示g.drawImage(pic,w+d,0,w/2,h/2,this);/缩小为原图宽缩小为原图宽高一半并显示高一半并显示第第6章章Java图形用户界面图形用户界面/page5.htmlJava 小程序小程序第第6章章Java图形用户界面图形用户界面运行后结果如下:运行后结果如下:第第6章章Java图形用户界面图形用户界面6.3 Graphics2D画图简介画图简介Java类库中

温馨提示

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

评论

0/150

提交评论