本章要点:
1、 Graphics2D类
2、Color类
3、Font类
4、图像的处理
我日:我发个技术论坛尼玛给我说“帖子有非法词汇,不能发布,我去年买了个表!~”
6 个解决方案
#1
Graphics2D类
Java 2D拥有强大的二维图形处理能力,这些功能主要是由Graphics2D类来完成的,该类是Graphics类的一个子类。它的特点是把所绘的图形当成一个对象来处理,绘制前先创建对象。
绘制2D直线
调用格式:
先创建2D线形对象:
Line2D line=new Line2D.Double(double x1,double y1,double x2,double y2);
然后再绘制2D直线line。
作用:绘制一条二维直线。
参数说明:x1,y1,二维直线的起始坐标;x2,y2,二维直线的终点坐标。
使用举例:
运行结果:
绘制2D矩形
调用格式:
先创建2D矩形对象:
Rectangle2D rect=new Rectangle2D.Double(double x1,double y1,double width,double height);
然后再绘制2D矩形。
作用:绘制一个2D矩形。
参数说明:x1,y1,2D矩形的左上角坐标;width,height,2D矩形的宽和高。
使用举例:
运行结果:
绘制2D圆角矩形
调用格式:
先创建2D圆角矩形对象:
RoundRectangle2D r_rect=new RoundRectangle2D.Double(double x1,double y1,double width,double height,double arcw,double arch);
然后再绘制2D圆角矩形。
作用:绘制一个2D圆矩形。
参数说明:
x1,y1,width,height,分别为2D圆角矩形的左上角坐标、宽和高;
arcw,arch,分别为圆角的长轴和短轴。
使用举例:
运行结果:
绘制椭圆
调用格式:
先创建2D椭圆对象:
Ellipse2D ellipse=new Ellipse2D.Double(double x1,double y1,double width,double height );
然后再绘制2D椭圆。
作用:绘制一个2D椭圆。
参数说明:x1,y1,width,height,分别为2D椭圆的左上角坐标、宽和高。
使用举例:
运行结果:
绘制2D园弧
调用格式:
先创建2D圆弧对象:
Arc2D arc=new Arc2D.Double(double x1,double y1,double width,double height ,double starang,double endang,arc2D.pie);
然后再绘制2D圆弧。
作用:绘制一条2D圆弧。
参数说明:
x1,y1,width,height,2D圆弧外接矩形的左上角坐标、宽和高。
Starang,ending,圆弧的起始角和终止角,单位为“度”。
最后一个参数的取值为:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分别代表开弧、饼弧、弓弧。
使用举例:
运行结果:
绘制二次曲线
调用格式:
先创建2D二次曲线对象:
QuadCurve2D draw_c=new QuadCurve2D.Double(double x1,double y1,double x2,double y2,double x3,double y3 );
然后再绘制二次曲线。
作用:绘制二次曲线。
参数说明:x1,y1,x2,y2,分别为两个端点坐标。X3,y3,控制点坐标。
使用举例:
运行结果:
Color类
java语言的颜色类——Color类为我们定义了丰富的颜色值常量和颜色值产生的方法,能够让我们控制各种色彩的显示。其每一种颜色都是由“红-绿-蓝”三原色合成。
Color()
调用格式:public color(int red,int green,int blue)
作用:配置颜色。
参数解释:red,green,blue,分别为配置三原色(红、绿、蓝)的色值。
使用举例:
运行结果:
Getred()
调用格式:public int getred()
作用:返回当前色值中的红色含量值。
Getblue()
调用格式:public int getblue()
作用:返回当前色值中的蓝色含量值。
GetGreen()
调用格式:public int getGreen()
作用:返回当前色值中的绿色含量值。
以上三个方法举例如下:
运行结果:
Setcolor()
调用格式:public abstact void Setcolor( Color c)
作用:设置当前颜色值。参数解释:c,颜色值。
Getcolor()
调用格式:public abstact color getcolor()
作用:返回当前颜色值。
举例如下:
运行结果:
Font类
在前面章节的很多例子中我们都使用了输出文本的方法。在没有设置字体、字型号的情况下,其输出都是采用的默认字体和字型号。在java语言中,我们可以通过Font类来设定不同的输出字体、字型号,使我们的界面更美观、更漂亮。下面我们就Font类的使用做一详解。
Java语言中,设置字体输出的操作顺序一般是:先用Font类创建字体对象,然后用setFont()方法设置输出字体,最后用drawString()输出结果。
利用Font类建立字体
Font类建立字体调用格式:
Font crea_Font=new Font(string font_name,int font_style,int font_size)
参数说明:
font_name,字体的名称。如:“SansSerif”、“Times”、“黑体”、“宋体”等。
font_style,字体的样式。如:Font.PLAIN(正常体)、Font.BOLD(加粗体)、Font.ITALIC(斜体)等。
font_size,字体大小的磅值,是一个数字。如:10、12、14、18、20等。
使用举例:
运行结果:
设置字体的方法setFont()
1、作用:设置当前输出字符串的字体。
2、setFont()调用格式: public void setFont(Font font)
3、参数说明:font,字体对象。
输出字体的方法drawstring()
1、作用:按当前设定的字体输出字符串。
2、setFont()调用格式: public void drawstring(string s,int x,int y)
3、参数说明:s——输出的字符串。X,y——字符串的输出坐标(x,y)
图像的处理
Java语言支持两类格式的图像处理,它们是GIF格式与JPEG格式。与图形处理不同的是图形处理是Java程序绘制出来的,而图像是用其他工具生成的特殊二进制文件。
Java语言处理图像的一般步骤是:先加载图像,然后输出图像。
加载图像
加载图像常在程序的初始化方法中进行,使用的方法是getImage()。
调用格式:
作用:加载指定的图像文件。该方法有返回值,返回值是一个Image对象。
参数解释:ur,URL(Universal Resource Locator)类的对象,用于指出图像文件所在的地址。
Fname,图像文件名称。
输出图像
显示使用的方法是drawgetImage()。
调用格式:
作用:将加载的图像显示与指定位置。
参数解释:
img,显示的图像。
X,y,图像显示位置的左上角坐标。
Width,height,图像实际显示时的高度、宽度。
bcolor,图像显示区域的背景色。
Observer,图像加载跟踪器。其值常设为this,用以表示用Applet做跟踪器。
以上两个方法举例如下:
运行结果:
Java 2D拥有强大的二维图形处理能力,这些功能主要是由Graphics2D类来完成的,该类是Graphics类的一个子类。它的特点是把所绘的图形当成一个对象来处理,绘制前先创建对象。
绘制2D直线
调用格式:
先创建2D线形对象:
Line2D line=new Line2D.Double(double x1,double y1,double x2,double y2);
然后再绘制2D直线line。
作用:绘制一条二维直线。
参数说明:x1,y1,二维直线的起始坐标;x2,y2,二维直线的终点坐标。
使用举例:
public class draw_2d_line extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换d为2D对象
d2.setColor(Color.red);
Line2D line=new Line2D.Double(100,10,100,300);//创建line对象
d2.draw(line);//画出2D直线
d2.setColor(Color.blue);
Line2D line1=new Line2D.Double(0,300,100,300);//创建line对象
d2.draw(line1);//画出2D直线
}
}
运行结果:
绘制2D矩形
调用格式:
先创建2D矩形对象:
Rectangle2D rect=new Rectangle2D.Double(double x1,double y1,double width,double height);
然后再绘制2D矩形。
作用:绘制一个2D矩形。
参数说明:x1,y1,2D矩形的左上角坐标;width,height,2D矩形的宽和高。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Rectangle2D rect=new Rectangle2D.Double(40,50,250,300);//创建矩形对象
d2.draw(rect);//画出矩形
d2.setColor(Color.blue);
Rectangle2D rect1=new Rectangle2D.Double(80,100,250,300);//创建矩形对象
d2.draw(rect1);//画出矩形
}
}
运行结果:
绘制2D圆角矩形
调用格式:
先创建2D圆角矩形对象:
RoundRectangle2D r_rect=new RoundRectangle2D.Double(double x1,double y1,double width,double height,double arcw,double arch);
然后再绘制2D圆角矩形。
作用:绘制一个2D圆矩形。
参数说明:
x1,y1,width,height,分别为2D圆角矩形的左上角坐标、宽和高;
arcw,arch,分别为圆角的长轴和短轴。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
RoundRectangle2D rect=new RoundRectangle2D.Double(40,50,50,30,20,20);//创建矩//形对象
d2.draw(rect);//画出矩形
d2.setColor(Color.blue);
RoundRectangle2D rect1=new RoundRectangle2D.Double(80,100,50,30,20,20);//创建//矩形对象
d2.draw(rect1);//画出矩形
}
}
运行结果:
绘制椭圆
调用格式:
先创建2D椭圆对象:
Ellipse2D ellipse=new Ellipse2D.Double(double x1,double y1,double width,double height );
然后再绘制2D椭圆。
作用:绘制一个2D椭圆。
参数说明:x1,y1,width,height,分别为2D椭圆的左上角坐标、宽和高。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Ellipse2D ellipse =new Ellipse2D.Double(10,10,100,200);//创建椭圆对象
d2.draw(ellipse);//画出椭圆
d2.setColor(Color.blue);
Ellipse2D ellipse1=new Ellipse2D.Double(20,20,100,200);//创建椭圆对象
d2.draw(ellipse1);//画出矩形
}
}
运行结果:
绘制2D园弧
调用格式:
先创建2D圆弧对象:
Arc2D arc=new Arc2D.Double(double x1,double y1,double width,double height ,double starang,double endang,arc2D.pie);
然后再绘制2D圆弧。
作用:绘制一条2D圆弧。
参数说明:
x1,y1,width,height,2D圆弧外接矩形的左上角坐标、宽和高。
Starang,ending,圆弧的起始角和终止角,单位为“度”。
最后一个参数的取值为:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分别代表开弧、饼弧、弓弧。
使用举例:
public class draw_2d_Arc extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Arc2D arc1=new Arc2D.Double(20,30,80,55,0,90,Arc2D.OPEN);//创建对象
d2.draw(arc1);//画出开弧,红色
d2.setColor(Color.blue);
Arc2D arc2=new Arc2D.Double(40,30,80,55,0,90,Arc2D.PIE);//创建对象
d2.draw(arc2);//画出饼弧,蓝色
d2.setColor(Color.green);
Arc2D arc3=new Arc2D.Double(80,30,80,55,0,90,Arc2D.CHORD);//创建对象
d2.draw(arc3);//画出弓弧,绿色
}
}
运行结果:
绘制二次曲线
调用格式:
先创建2D二次曲线对象:
QuadCurve2D draw_c=new QuadCurve2D.Double(double x1,double y1,double x2,double y2,double x3,double y3 );
然后再绘制二次曲线。
作用:绘制二次曲线。
参数说明:x1,y1,x2,y2,分别为两个端点坐标。X3,y3,控制点坐标。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
QuadCurve2D draw_c1=new QuadCurve2D.Double(10,50,100,100,20,40);//创建对象
d2.draw(draw_c1);//画出
d2.setColor(Color.blue);
QuadCurve2D draw_c2=new QuadCurve2D.Double(20,60,100,100,40,80);//创建对象
d2.draw(draw_c2);//画出
d2.setColor(Color.green);
QuadCurve2D draw_c3=new QuadCurve2D.Double(30,70,100,100,80,160);//创建对象
d2.draw(draw_c3);//画出
}
}
运行结果:
Color类
java语言的颜色类——Color类为我们定义了丰富的颜色值常量和颜色值产生的方法,能够让我们控制各种色彩的显示。其每一种颜色都是由“红-绿-蓝”三原色合成。
Color()
调用格式:public color(int red,int green,int blue)
作用:配置颜色。
参数解释:red,green,blue,分别为配置三原色(红、绿、蓝)的色值。
使用举例:
class circle
{
protected int x,y,width,height;
circle()
{
x=35;
y=35;
width=50;
height=100;
}
}
public class showcircle extends Applet
{
circle t=new circle();
public void paint(Graphics g)
{
Color co=new Color(255,0,0);
g.setColor(co);
g.drawOval(t.x+150,t.y+150,t.width,t.height);
Color co1=new Color(0,0,255);
g.setColor(co1);
g.fillOval(t.x,t.y,t.width,t.height);
}
}
运行结果:
Getred()
调用格式:public int getred()
作用:返回当前色值中的红色含量值。
Getblue()
调用格式:public int getblue()
作用:返回当前色值中的蓝色含量值。
GetGreen()
调用格式:public int getGreen()
作用:返回当前色值中的绿色含量值。
以上三个方法举例如下:
public class showcircle extends Applet
{
public void paint(Graphics g)
{
Color co=new Color(255,0,0);
g.setColor(co);
Color c=g.getColor();
g.drawString("红色含量值"+c.getRed(),10,20);
g.drawString("绿色含量值"+c.getGreen(),10,40);
g.drawString("蓝色含量值"+c.getBlue(),10,60);
}
}
运行结果:
Setcolor()
调用格式:public abstact void Setcolor( Color c)
作用:设置当前颜色值。参数解释:c,颜色值。
Getcolor()
调用格式:public abstact color getcolor()
作用:返回当前颜色值。
举例如下:
public class showcircle extends Applet
{
public void paint(Graphics g)
{
g.setColor(g.getColor());
g.fillOval(20,30,40,50);
}
}
运行结果:
Font类
在前面章节的很多例子中我们都使用了输出文本的方法。在没有设置字体、字型号的情况下,其输出都是采用的默认字体和字型号。在java语言中,我们可以通过Font类来设定不同的输出字体、字型号,使我们的界面更美观、更漂亮。下面我们就Font类的使用做一详解。
Java语言中,设置字体输出的操作顺序一般是:先用Font类创建字体对象,然后用setFont()方法设置输出字体,最后用drawString()输出结果。
利用Font类建立字体
Font类建立字体调用格式:
Font crea_Font=new Font(string font_name,int font_style,int font_size)
参数说明:
font_name,字体的名称。如:“SansSerif”、“Times”、“黑体”、“宋体”等。
font_style,字体的样式。如:Font.PLAIN(正常体)、Font.BOLD(加粗体)、Font.ITALIC(斜体)等。
font_size,字体大小的磅值,是一个数字。如:10、12、14、18、20等。
使用举例:
public class showfont extends Applet
{
Font font1=new Font(“Times New Roman”,Font.BOLD,14);
Font font2=new Font(“SansSerif”,Font.ITALIC,48);
Font font3=new Font(“Serif”,Font.PLAIN,60);
public void paint(Graphics g)
{
g.setFont(font1);
g.drawstring(“这是Times New Roman字体”,20,30);
g.setFont(font2);
g.drawstring(“这是SansSerif字体”,60,30);
g.setFont(font3);
g.drawstring(“这是Serif字体”,80,30);
}
}
运行结果:
设置字体的方法setFont()
1、作用:设置当前输出字符串的字体。
2、setFont()调用格式: public void setFont(Font font)
3、参数说明:font,字体对象。
输出字体的方法drawstring()
1、作用:按当前设定的字体输出字符串。
2、setFont()调用格式: public void drawstring(string s,int x,int y)
3、参数说明:s——输出的字符串。X,y——字符串的输出坐标(x,y)
图像的处理
Java语言支持两类格式的图像处理,它们是GIF格式与JPEG格式。与图形处理不同的是图形处理是Java程序绘制出来的,而图像是用其他工具生成的特殊二进制文件。
Java语言处理图像的一般步骤是:先加载图像,然后输出图像。
加载图像
加载图像常在程序的初始化方法中进行,使用的方法是getImage()。
调用格式:
getImage(URL ur,String Fname)
作用:加载指定的图像文件。该方法有返回值,返回值是一个Image对象。
参数解释:ur,URL(Universal Resource Locator)类的对象,用于指出图像文件所在的地址。
Fname,图像文件名称。
输出图像
显示使用的方法是drawgetImage()。
调用格式:
drawImage(Image img,int x,int y,int width,int height,Color bcolor,ImageObserver observer)
作用:将加载的图像显示与指定位置。
参数解释:
img,显示的图像。
X,y,图像显示位置的左上角坐标。
Width,height,图像实际显示时的高度、宽度。
bcolor,图像显示区域的背景色。
Observer,图像加载跟踪器。其值常设为this,用以表示用Applet做跟踪器。
以上两个方法举例如下:
public class show_image extends Applet
{
Image img;
public void init(){
img=getImage(getCodeBase(),"Fish.jpg");
}
//getCodeBase()用于指定当前路径
public void paint(Graphics g)
{
g.drawImage(img,30,20,this);
}
}
运行结果:
#2
非要让老子这么搞,你才高兴!~
#3
我来赞一个。
#4
给力,请问,那个页面该怎么写?
#5
学习了,正在看java2d在项目。
#6
我要将r的颜色改成红色,应该怎么写?新手,勿喷!!!
#1
Graphics2D类
Java 2D拥有强大的二维图形处理能力,这些功能主要是由Graphics2D类来完成的,该类是Graphics类的一个子类。它的特点是把所绘的图形当成一个对象来处理,绘制前先创建对象。
绘制2D直线
调用格式:
先创建2D线形对象:
Line2D line=new Line2D.Double(double x1,double y1,double x2,double y2);
然后再绘制2D直线line。
作用:绘制一条二维直线。
参数说明:x1,y1,二维直线的起始坐标;x2,y2,二维直线的终点坐标。
使用举例:
运行结果:
绘制2D矩形
调用格式:
先创建2D矩形对象:
Rectangle2D rect=new Rectangle2D.Double(double x1,double y1,double width,double height);
然后再绘制2D矩形。
作用:绘制一个2D矩形。
参数说明:x1,y1,2D矩形的左上角坐标;width,height,2D矩形的宽和高。
使用举例:
运行结果:
绘制2D圆角矩形
调用格式:
先创建2D圆角矩形对象:
RoundRectangle2D r_rect=new RoundRectangle2D.Double(double x1,double y1,double width,double height,double arcw,double arch);
然后再绘制2D圆角矩形。
作用:绘制一个2D圆矩形。
参数说明:
x1,y1,width,height,分别为2D圆角矩形的左上角坐标、宽和高;
arcw,arch,分别为圆角的长轴和短轴。
使用举例:
运行结果:
绘制椭圆
调用格式:
先创建2D椭圆对象:
Ellipse2D ellipse=new Ellipse2D.Double(double x1,double y1,double width,double height );
然后再绘制2D椭圆。
作用:绘制一个2D椭圆。
参数说明:x1,y1,width,height,分别为2D椭圆的左上角坐标、宽和高。
使用举例:
运行结果:
绘制2D园弧
调用格式:
先创建2D圆弧对象:
Arc2D arc=new Arc2D.Double(double x1,double y1,double width,double height ,double starang,double endang,arc2D.pie);
然后再绘制2D圆弧。
作用:绘制一条2D圆弧。
参数说明:
x1,y1,width,height,2D圆弧外接矩形的左上角坐标、宽和高。
Starang,ending,圆弧的起始角和终止角,单位为“度”。
最后一个参数的取值为:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分别代表开弧、饼弧、弓弧。
使用举例:
运行结果:
绘制二次曲线
调用格式:
先创建2D二次曲线对象:
QuadCurve2D draw_c=new QuadCurve2D.Double(double x1,double y1,double x2,double y2,double x3,double y3 );
然后再绘制二次曲线。
作用:绘制二次曲线。
参数说明:x1,y1,x2,y2,分别为两个端点坐标。X3,y3,控制点坐标。
使用举例:
运行结果:
Color类
java语言的颜色类——Color类为我们定义了丰富的颜色值常量和颜色值产生的方法,能够让我们控制各种色彩的显示。其每一种颜色都是由“红-绿-蓝”三原色合成。
Color()
调用格式:public color(int red,int green,int blue)
作用:配置颜色。
参数解释:red,green,blue,分别为配置三原色(红、绿、蓝)的色值。
使用举例:
运行结果:
Getred()
调用格式:public int getred()
作用:返回当前色值中的红色含量值。
Getblue()
调用格式:public int getblue()
作用:返回当前色值中的蓝色含量值。
GetGreen()
调用格式:public int getGreen()
作用:返回当前色值中的绿色含量值。
以上三个方法举例如下:
运行结果:
Setcolor()
调用格式:public abstact void Setcolor( Color c)
作用:设置当前颜色值。参数解释:c,颜色值。
Getcolor()
调用格式:public abstact color getcolor()
作用:返回当前颜色值。
举例如下:
运行结果:
Font类
在前面章节的很多例子中我们都使用了输出文本的方法。在没有设置字体、字型号的情况下,其输出都是采用的默认字体和字型号。在java语言中,我们可以通过Font类来设定不同的输出字体、字型号,使我们的界面更美观、更漂亮。下面我们就Font类的使用做一详解。
Java语言中,设置字体输出的操作顺序一般是:先用Font类创建字体对象,然后用setFont()方法设置输出字体,最后用drawString()输出结果。
利用Font类建立字体
Font类建立字体调用格式:
Font crea_Font=new Font(string font_name,int font_style,int font_size)
参数说明:
font_name,字体的名称。如:“SansSerif”、“Times”、“黑体”、“宋体”等。
font_style,字体的样式。如:Font.PLAIN(正常体)、Font.BOLD(加粗体)、Font.ITALIC(斜体)等。
font_size,字体大小的磅值,是一个数字。如:10、12、14、18、20等。
使用举例:
运行结果:
设置字体的方法setFont()
1、作用:设置当前输出字符串的字体。
2、setFont()调用格式: public void setFont(Font font)
3、参数说明:font,字体对象。
输出字体的方法drawstring()
1、作用:按当前设定的字体输出字符串。
2、setFont()调用格式: public void drawstring(string s,int x,int y)
3、参数说明:s——输出的字符串。X,y——字符串的输出坐标(x,y)
图像的处理
Java语言支持两类格式的图像处理,它们是GIF格式与JPEG格式。与图形处理不同的是图形处理是Java程序绘制出来的,而图像是用其他工具生成的特殊二进制文件。
Java语言处理图像的一般步骤是:先加载图像,然后输出图像。
加载图像
加载图像常在程序的初始化方法中进行,使用的方法是getImage()。
调用格式:
作用:加载指定的图像文件。该方法有返回值,返回值是一个Image对象。
参数解释:ur,URL(Universal Resource Locator)类的对象,用于指出图像文件所在的地址。
Fname,图像文件名称。
输出图像
显示使用的方法是drawgetImage()。
调用格式:
作用:将加载的图像显示与指定位置。
参数解释:
img,显示的图像。
X,y,图像显示位置的左上角坐标。
Width,height,图像实际显示时的高度、宽度。
bcolor,图像显示区域的背景色。
Observer,图像加载跟踪器。其值常设为this,用以表示用Applet做跟踪器。
以上两个方法举例如下:
运行结果:
Java 2D拥有强大的二维图形处理能力,这些功能主要是由Graphics2D类来完成的,该类是Graphics类的一个子类。它的特点是把所绘的图形当成一个对象来处理,绘制前先创建对象。
绘制2D直线
调用格式:
先创建2D线形对象:
Line2D line=new Line2D.Double(double x1,double y1,double x2,double y2);
然后再绘制2D直线line。
作用:绘制一条二维直线。
参数说明:x1,y1,二维直线的起始坐标;x2,y2,二维直线的终点坐标。
使用举例:
public class draw_2d_line extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换d为2D对象
d2.setColor(Color.red);
Line2D line=new Line2D.Double(100,10,100,300);//创建line对象
d2.draw(line);//画出2D直线
d2.setColor(Color.blue);
Line2D line1=new Line2D.Double(0,300,100,300);//创建line对象
d2.draw(line1);//画出2D直线
}
}
运行结果:
绘制2D矩形
调用格式:
先创建2D矩形对象:
Rectangle2D rect=new Rectangle2D.Double(double x1,double y1,double width,double height);
然后再绘制2D矩形。
作用:绘制一个2D矩形。
参数说明:x1,y1,2D矩形的左上角坐标;width,height,2D矩形的宽和高。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Rectangle2D rect=new Rectangle2D.Double(40,50,250,300);//创建矩形对象
d2.draw(rect);//画出矩形
d2.setColor(Color.blue);
Rectangle2D rect1=new Rectangle2D.Double(80,100,250,300);//创建矩形对象
d2.draw(rect1);//画出矩形
}
}
运行结果:
绘制2D圆角矩形
调用格式:
先创建2D圆角矩形对象:
RoundRectangle2D r_rect=new RoundRectangle2D.Double(double x1,double y1,double width,double height,double arcw,double arch);
然后再绘制2D圆角矩形。
作用:绘制一个2D圆矩形。
参数说明:
x1,y1,width,height,分别为2D圆角矩形的左上角坐标、宽和高;
arcw,arch,分别为圆角的长轴和短轴。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
RoundRectangle2D rect=new RoundRectangle2D.Double(40,50,50,30,20,20);//创建矩//形对象
d2.draw(rect);//画出矩形
d2.setColor(Color.blue);
RoundRectangle2D rect1=new RoundRectangle2D.Double(80,100,50,30,20,20);//创建//矩形对象
d2.draw(rect1);//画出矩形
}
}
运行结果:
绘制椭圆
调用格式:
先创建2D椭圆对象:
Ellipse2D ellipse=new Ellipse2D.Double(double x1,double y1,double width,double height );
然后再绘制2D椭圆。
作用:绘制一个2D椭圆。
参数说明:x1,y1,width,height,分别为2D椭圆的左上角坐标、宽和高。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Ellipse2D ellipse =new Ellipse2D.Double(10,10,100,200);//创建椭圆对象
d2.draw(ellipse);//画出椭圆
d2.setColor(Color.blue);
Ellipse2D ellipse1=new Ellipse2D.Double(20,20,100,200);//创建椭圆对象
d2.draw(ellipse1);//画出矩形
}
}
运行结果:
绘制2D园弧
调用格式:
先创建2D圆弧对象:
Arc2D arc=new Arc2D.Double(double x1,double y1,double width,double height ,double starang,double endang,arc2D.pie);
然后再绘制2D圆弧。
作用:绘制一条2D圆弧。
参数说明:
x1,y1,width,height,2D圆弧外接矩形的左上角坐标、宽和高。
Starang,ending,圆弧的起始角和终止角,单位为“度”。
最后一个参数的取值为:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分别代表开弧、饼弧、弓弧。
使用举例:
public class draw_2d_Arc extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
Arc2D arc1=new Arc2D.Double(20,30,80,55,0,90,Arc2D.OPEN);//创建对象
d2.draw(arc1);//画出开弧,红色
d2.setColor(Color.blue);
Arc2D arc2=new Arc2D.Double(40,30,80,55,0,90,Arc2D.PIE);//创建对象
d2.draw(arc2);//画出饼弧,蓝色
d2.setColor(Color.green);
Arc2D arc3=new Arc2D.Double(80,30,80,55,0,90,Arc2D.CHORD);//创建对象
d2.draw(arc3);//画出弓弧,绿色
}
}
运行结果:
绘制二次曲线
调用格式:
先创建2D二次曲线对象:
QuadCurve2D draw_c=new QuadCurve2D.Double(double x1,double y1,double x2,double y2,double x3,double y3 );
然后再绘制二次曲线。
作用:绘制二次曲线。
参数说明:x1,y1,x2,y2,分别为两个端点坐标。X3,y3,控制点坐标。
使用举例:
public class draw_2d_Rect extends Applet
{
public void paint(Graphics g)
{
Graphics2D d2;
d2=(Graphics2D)g;//转换g为2D对象
d2.setColor(Color.red);
QuadCurve2D draw_c1=new QuadCurve2D.Double(10,50,100,100,20,40);//创建对象
d2.draw(draw_c1);//画出
d2.setColor(Color.blue);
QuadCurve2D draw_c2=new QuadCurve2D.Double(20,60,100,100,40,80);//创建对象
d2.draw(draw_c2);//画出
d2.setColor(Color.green);
QuadCurve2D draw_c3=new QuadCurve2D.Double(30,70,100,100,80,160);//创建对象
d2.draw(draw_c3);//画出
}
}
运行结果:
Color类
java语言的颜色类——Color类为我们定义了丰富的颜色值常量和颜色值产生的方法,能够让我们控制各种色彩的显示。其每一种颜色都是由“红-绿-蓝”三原色合成。
Color()
调用格式:public color(int red,int green,int blue)
作用:配置颜色。
参数解释:red,green,blue,分别为配置三原色(红、绿、蓝)的色值。
使用举例:
class circle
{
protected int x,y,width,height;
circle()
{
x=35;
y=35;
width=50;
height=100;
}
}
public class showcircle extends Applet
{
circle t=new circle();
public void paint(Graphics g)
{
Color co=new Color(255,0,0);
g.setColor(co);
g.drawOval(t.x+150,t.y+150,t.width,t.height);
Color co1=new Color(0,0,255);
g.setColor(co1);
g.fillOval(t.x,t.y,t.width,t.height);
}
}
运行结果:
Getred()
调用格式:public int getred()
作用:返回当前色值中的红色含量值。
Getblue()
调用格式:public int getblue()
作用:返回当前色值中的蓝色含量值。
GetGreen()
调用格式:public int getGreen()
作用:返回当前色值中的绿色含量值。
以上三个方法举例如下:
public class showcircle extends Applet
{
public void paint(Graphics g)
{
Color co=new Color(255,0,0);
g.setColor(co);
Color c=g.getColor();
g.drawString("红色含量值"+c.getRed(),10,20);
g.drawString("绿色含量值"+c.getGreen(),10,40);
g.drawString("蓝色含量值"+c.getBlue(),10,60);
}
}
运行结果:
Setcolor()
调用格式:public abstact void Setcolor( Color c)
作用:设置当前颜色值。参数解释:c,颜色值。
Getcolor()
调用格式:public abstact color getcolor()
作用:返回当前颜色值。
举例如下:
public class showcircle extends Applet
{
public void paint(Graphics g)
{
g.setColor(g.getColor());
g.fillOval(20,30,40,50);
}
}
运行结果:
Font类
在前面章节的很多例子中我们都使用了输出文本的方法。在没有设置字体、字型号的情况下,其输出都是采用的默认字体和字型号。在java语言中,我们可以通过Font类来设定不同的输出字体、字型号,使我们的界面更美观、更漂亮。下面我们就Font类的使用做一详解。
Java语言中,设置字体输出的操作顺序一般是:先用Font类创建字体对象,然后用setFont()方法设置输出字体,最后用drawString()输出结果。
利用Font类建立字体
Font类建立字体调用格式:
Font crea_Font=new Font(string font_name,int font_style,int font_size)
参数说明:
font_name,字体的名称。如:“SansSerif”、“Times”、“黑体”、“宋体”等。
font_style,字体的样式。如:Font.PLAIN(正常体)、Font.BOLD(加粗体)、Font.ITALIC(斜体)等。
font_size,字体大小的磅值,是一个数字。如:10、12、14、18、20等。
使用举例:
public class showfont extends Applet
{
Font font1=new Font(“Times New Roman”,Font.BOLD,14);
Font font2=new Font(“SansSerif”,Font.ITALIC,48);
Font font3=new Font(“Serif”,Font.PLAIN,60);
public void paint(Graphics g)
{
g.setFont(font1);
g.drawstring(“这是Times New Roman字体”,20,30);
g.setFont(font2);
g.drawstring(“这是SansSerif字体”,60,30);
g.setFont(font3);
g.drawstring(“这是Serif字体”,80,30);
}
}
运行结果:
设置字体的方法setFont()
1、作用:设置当前输出字符串的字体。
2、setFont()调用格式: public void setFont(Font font)
3、参数说明:font,字体对象。
输出字体的方法drawstring()
1、作用:按当前设定的字体输出字符串。
2、setFont()调用格式: public void drawstring(string s,int x,int y)
3、参数说明:s——输出的字符串。X,y——字符串的输出坐标(x,y)
图像的处理
Java语言支持两类格式的图像处理,它们是GIF格式与JPEG格式。与图形处理不同的是图形处理是Java程序绘制出来的,而图像是用其他工具生成的特殊二进制文件。
Java语言处理图像的一般步骤是:先加载图像,然后输出图像。
加载图像
加载图像常在程序的初始化方法中进行,使用的方法是getImage()。
调用格式:
getImage(URL ur,String Fname)
作用:加载指定的图像文件。该方法有返回值,返回值是一个Image对象。
参数解释:ur,URL(Universal Resource Locator)类的对象,用于指出图像文件所在的地址。
Fname,图像文件名称。
输出图像
显示使用的方法是drawgetImage()。
调用格式:
drawImage(Image img,int x,int y,int width,int height,Color bcolor,ImageObserver observer)
作用:将加载的图像显示与指定位置。
参数解释:
img,显示的图像。
X,y,图像显示位置的左上角坐标。
Width,height,图像实际显示时的高度、宽度。
bcolor,图像显示区域的背景色。
Observer,图像加载跟踪器。其值常设为this,用以表示用Applet做跟踪器。
以上两个方法举例如下:
public class show_image extends Applet
{
Image img;
public void init(){
img=getImage(getCodeBase(),"Fish.jpg");
}
//getCodeBase()用于指定当前路径
public void paint(Graphics g)
{
g.drawImage(img,30,20,this);
}
}
运行结果:
#2
非要让老子这么搞,你才高兴!~
#3
我来赞一个。
#4
给力,请问,那个页面该怎么写?
#5
学习了,正在看java2d在项目。
#6
我要将r的颜色改成红色,应该怎么写?新手,勿喷!!!