Java19-Java程序设计与应用开发-郭克华-清华大学出版社
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2:画矩形: public void drawRect(int x, int y, int width, int height)
该函数以(x,y)为左上角坐标,width为宽度,height为高度画一个矩形。如图所示:
3. 画圆角矩形:
public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
该函数画一段圆弧。在画图系统中,任何的圆或椭圆都可以包含在一个矩形内,因此,确定 了矩形,就确定了圆弧。该函数中,圆弧所在的矩形以(x,y)为左上角坐标,width为宽度,height 为高度,以startAngle为开始的角度,arcAngle为画出的角度。注意,在圆形画图过程中,从中心 水平向右表示0度,逆时针为正方向。具体定位方法如图所示:
}
}
对于画图形而言,Graphics2D对象的重要功能有: 1. 将此图形上下文的当前颜色设置为指定颜色:
public abstract void setColor(Color c)
2. 为 Graphics2D 上下文设置线型:
public abstract void setStroke(Stroke s)
该函数需要被重写,在画布出现时会自动调用,也可以被repaint方法触发。该函数 传入一个java.awt.Graphics(画笔)对象,能够画各种图形。
19.2.2 如何使用Graphics
打开java.awt.Graphics类文档,会发现Graphics类定义如下:
public abstract class Graphics extends Object
2. public void repaint(Rectangle r)。 该函数从父类JComponent继承,负责在某个区域内调用paint函数。
19.2 用Graphics进行画图 19.2.1 什么是Graphics
前面说过,在JPanel类中,有一个重要成员函数:
public void paint(Graphics g)
19.3 如何画字符串 19.3.1 为什么需要画字符串
读者可能会问,如果要在界面上显示一个字符串,是很容易的事情,只要将该字 符串放在JLabel中就可以了。为什么还要专门学习画字符串呢?
实际上,在JLabel中显示字符串,是将画字符串的功能封装了,在底层,字符 串还是通过Graphics画出来的。有些复杂的功能,比如,我们要在字符串周围增加一 些其他渲染,或者字符串中各个字符的风格不一样,就不是JLabel能做到的。
图19-2 各个方块就是在界面上画出来的。
19.1.2 如何实现画图
按照日常生活的经验,一般情况下,图应该画在画布上,再将画布画在界面上。这种方法可行, 实际上,在我们以前学习的所有控件中,有一个东西是最接近画布的,那就是JPanel。
在JPanel类中,有如下重要成员函数: 1.public void paint(Graphics g)。 该函数从父类JComponent继承,里面可以包含画图的代码。
圆角矩形来源于一个普通矩形,普通矩形就有左上角的横纵坐标和宽度、高度。该函数画一个 圆角矩形,以(x,y)为左上角坐标,width为宽度,height为高度,arcWidth为圆角水平直径, arcHeight为圆角垂直直径。如图所示:
4. 画圆弧(椭圆弧):
public abstract void drawArc(int x, int y, int width, int height, int startAngle,int 知识
本章术语
• Graphics • paint函数 • repaint函数 • drawString • drawImage • 验证码
19.1 认识Java画图 19.1.1 为什么要学习画图
很多游戏场景,都是用了非常高超的画图技巧,在界面上画出图形,比如有 名的俄罗斯方块:
图19-17 在画出字符串时,除了可以给画笔设置颜色之外,还可以给画笔设置字体,用
到Graphics的如下函数: public abstract void setFont(Font font)
19.3.3 案例:产生验证码
详细代码阅读课本。
19.4 如何画图片 19.4.1 为什么需要画图片
我们知道,在Java中,我们可以用Image和Icon表示图片,其中,Icon可以放在JLabel等 控件中在界面上显示。那么,为什么还要专门学习画图片呢?
和画字符串一样,在JLabel中显示图标,是将画图片的功能封装了,在底层,图片还 是通过Graphics画出来的。
19.3.2 如何画字符串
在面板上画字符串并不难,打开Graphics类文档,会发现Graphics类中有以下重要函数: public abstract void drawString(String str, int x, int y)
该函数的参数意义如下: 参数1是字符串的内容,如“中国人”; 参数2和参数3是参考点在屏幕上的坐标(x, y),注意,该参考点是字符串的左下角:
它直接继承ng.Object类,是一个抽象类,不能用构造函数来实例化其对象。不过, 幸运的是,我们可以通过paint函数的参数,直接得到画布上的画笔对象,不需要实例化。 如下代码: class MyPanel extends JPanel{
public void paint(Graphics g) { //直接使用参数g画图,无需再实例化
其中,线型由java.awt.Stroke对象封装,但是,Stroke是个接口,常见情况,可以 通过其实现类java.awt.BasicStroke来创建各种粗细、风格的线条。
以下将介绍常见的画图函数: 1.画线:
public abstract void drawLine(int x1, int y1, int x2, int y2) 该函数从坐标(x1,y1)到(x2,y2)画一条线。界面上的坐标如图所示:
该函数以(x,y)为左上角坐标,width为宽度,height为高度画一个矩形。如图所示:
3. 画圆角矩形:
public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
该函数画一段圆弧。在画图系统中,任何的圆或椭圆都可以包含在一个矩形内,因此,确定 了矩形,就确定了圆弧。该函数中,圆弧所在的矩形以(x,y)为左上角坐标,width为宽度,height 为高度,以startAngle为开始的角度,arcAngle为画出的角度。注意,在圆形画图过程中,从中心 水平向右表示0度,逆时针为正方向。具体定位方法如图所示:
}
}
对于画图形而言,Graphics2D对象的重要功能有: 1. 将此图形上下文的当前颜色设置为指定颜色:
public abstract void setColor(Color c)
2. 为 Graphics2D 上下文设置线型:
public abstract void setStroke(Stroke s)
该函数需要被重写,在画布出现时会自动调用,也可以被repaint方法触发。该函数 传入一个java.awt.Graphics(画笔)对象,能够画各种图形。
19.2.2 如何使用Graphics
打开java.awt.Graphics类文档,会发现Graphics类定义如下:
public abstract class Graphics extends Object
2. public void repaint(Rectangle r)。 该函数从父类JComponent继承,负责在某个区域内调用paint函数。
19.2 用Graphics进行画图 19.2.1 什么是Graphics
前面说过,在JPanel类中,有一个重要成员函数:
public void paint(Graphics g)
19.3 如何画字符串 19.3.1 为什么需要画字符串
读者可能会问,如果要在界面上显示一个字符串,是很容易的事情,只要将该字 符串放在JLabel中就可以了。为什么还要专门学习画字符串呢?
实际上,在JLabel中显示字符串,是将画字符串的功能封装了,在底层,字符 串还是通过Graphics画出来的。有些复杂的功能,比如,我们要在字符串周围增加一 些其他渲染,或者字符串中各个字符的风格不一样,就不是JLabel能做到的。
图19-2 各个方块就是在界面上画出来的。
19.1.2 如何实现画图
按照日常生活的经验,一般情况下,图应该画在画布上,再将画布画在界面上。这种方法可行, 实际上,在我们以前学习的所有控件中,有一个东西是最接近画布的,那就是JPanel。
在JPanel类中,有如下重要成员函数: 1.public void paint(Graphics g)。 该函数从父类JComponent继承,里面可以包含画图的代码。
圆角矩形来源于一个普通矩形,普通矩形就有左上角的横纵坐标和宽度、高度。该函数画一个 圆角矩形,以(x,y)为左上角坐标,width为宽度,height为高度,arcWidth为圆角水平直径, arcHeight为圆角垂直直径。如图所示:
4. 画圆弧(椭圆弧):
public abstract void drawArc(int x, int y, int width, int height, int startAngle,int 知识
本章术语
• Graphics • paint函数 • repaint函数 • drawString • drawImage • 验证码
19.1 认识Java画图 19.1.1 为什么要学习画图
很多游戏场景,都是用了非常高超的画图技巧,在界面上画出图形,比如有 名的俄罗斯方块:
图19-17 在画出字符串时,除了可以给画笔设置颜色之外,还可以给画笔设置字体,用
到Graphics的如下函数: public abstract void setFont(Font font)
19.3.3 案例:产生验证码
详细代码阅读课本。
19.4 如何画图片 19.4.1 为什么需要画图片
我们知道,在Java中,我们可以用Image和Icon表示图片,其中,Icon可以放在JLabel等 控件中在界面上显示。那么,为什么还要专门学习画图片呢?
和画字符串一样,在JLabel中显示图标,是将画图片的功能封装了,在底层,图片还 是通过Graphics画出来的。
19.3.2 如何画字符串
在面板上画字符串并不难,打开Graphics类文档,会发现Graphics类中有以下重要函数: public abstract void drawString(String str, int x, int y)
该函数的参数意义如下: 参数1是字符串的内容,如“中国人”; 参数2和参数3是参考点在屏幕上的坐标(x, y),注意,该参考点是字符串的左下角:
它直接继承ng.Object类,是一个抽象类,不能用构造函数来实例化其对象。不过, 幸运的是,我们可以通过paint函数的参数,直接得到画布上的画笔对象,不需要实例化。 如下代码: class MyPanel extends JPanel{
public void paint(Graphics g) { //直接使用参数g画图,无需再实例化
其中,线型由java.awt.Stroke对象封装,但是,Stroke是个接口,常见情况,可以 通过其实现类java.awt.BasicStroke来创建各种粗细、风格的线条。
以下将介绍常见的画图函数: 1.画线:
public abstract void drawLine(int x1, int y1, int x2, int y2) 该函数从坐标(x1,y1)到(x2,y2)画一条线。界面上的坐标如图所示: