java 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,二维直线的终点坐标。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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矩形的宽和高。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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,分别为圆角的长轴和短轴。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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椭圆的左上角坐标、宽和高。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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分别代表开弧、饼弧、弓弧。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,控制点坐标。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,分别为配置三原色(红、绿、蓝)的色值。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()
作用:返回当前色值中的绿色含量值。

以上三个方法举例如下:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
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()
作用:返回当前颜色值。

举例如下:
Java code ?
1
2
3
4
5
6
7
8
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等。

使用举例:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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()。

调用格式:
Java code ?
1
getImage(URL ur,String Fname)

作用:加载指定的图像文件。该方法有返回值,返回值是一个Image对象。
参数解释:ur,URL(Universal Resource Locator)类的对象,用于指出图像文件所在的地址。
Fname,图像文件名称。 

输出图像

显示使用的方法是drawgetImage()。

调用格式:
Java code ?
1
drawImage(Image img, int  x, int  y, int  width, int  height,Color bcolor,ImageObserver observer)

作用:将加载的图像显示与指定位置。
参数解释:
img,显示的图像。
X,y,图像显示位置的左上角坐标。
Width,height,图像实际显示时的高度、宽度。
bcolor,图像显示区域的背景色。
Observer,图像加载跟踪器。其值常设为this,用以表示用Applet做跟踪器。

以上两个方法举例如下:
Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
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 );
   }
}


运行结果:
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Graphics2DJava 2D API 中的一部分,它提供了一种绘制图形、文本和显式图像的方式。Graphics2D 是抽象 Graphics 的子,它可以用于创建具有高质量 2D 图形的应用程序。 Java Graphics2D 可以用于创建图形用户界面 (GUI) 和游戏,也可以用于创建绘画等应用程序。它提供了许多绘制方法,例如绘制线条、矩形、圆形、椭圆、弧形、文本和图像等。此外,它还提供了一些高级图形处理方法,例如透明度、渐变、阴影效果、剪切、旋转和缩放等。 要使用 Graphics2D,您需要创建一个 Graphics2D 对象并将其转换为 Graphics2D 型。然后,您可以使用 Graphics2D 对象的方法来绘制您想要的图形和文本。例如,以下是如何创建一个 Graphics2D 对象并绘制一个矩形的示例代码: ``` import java.awt.*; import javax.swing.*; public class Graphics2DExample extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.drawRect(50, 50, 100, 100); } public static void main(String[] args) { JFrame frame = new JFrame("Graphics2D Example"); frame.add(new Graphics2DExample()); frame.setSize(300, 300); frame.setVisible(true); } } ``` 此代码创建一个 Graphics2DExample ,该扩展了 JPanel,并且重写了 paintComponent 方法来绘制一个矩形。在 paintComponent 方法中,它先调用了父的 paintComponent 方法,然后将 Graphics 对象转换为 Graphics2D 对象,并使用 Graphics2D 对象的 drawRect 方法来绘制一个矩形。最后,在 main 方法中创建一个 JFrame 并将 Graphics2DExample 对象添加到其中。 这只是一个简单的示例,Java Graphics2D 还提供了许多其他功能和方法,如需更多信息,请查看 Java 文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值