javaGUI学习6:AWT-Graphics绘制与填充形状

1、画直线

Graphics.drawLine( int x , int y, int x2,int y2):画直线。

(x,y)是起点坐标,x2,y2分别为x,y轴上延长的长度,比实际长度要多1。

  • AWT不能画固定宽度的直线,使用图形笔所画的直线,其宽度一般是一个像素。
  • 没有规定线的模式,如点线或虚线。
  • 在Java 2D API中,为不同的线类型和图形笔尺寸提供广泛的支持。
import java.applet.Applet;
import java.awt.*;

public class demo03 extends Applet {
    public void paint(Graphics g) {
        Graphics g = null;
        try {
            g = getGraphics();
            g.setColor(Color.BLUE);
            g.drawLine(0,0,getSize().width - 1, getSize().height - 1);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            g.dispose();
        }
    }
}
2、画折线

drawPolyline (int[ ] x,int [ ] y,int num):来控制画折线,是一系列线段的连接。

x,y数组代表的是要绘制折线的点的坐标,num是绘制折线要用到(x,y)点的个数

import java.applet.Applet;
import java.awt.*;

public class demo03 extends Applet {
    public void paint(Graphics gg) {
        int[] x = {100,200,200,400,500};
        int[] y = {100,100,300,400,500};
        int p = 2;
        Graphics g = null;
        try {
            g = getGraphics();
            g.setColor(Color.BLUE);
            g.drawPolyline(x, y, p);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            g.dispose();
        }
    }
}
3、绘制矩形

Graphics类中规定了很多的绘制矩形的方法,典型的有下面列出的三种:

  • 实体的( solid)。
  • 圆角的( rounded)。
  • 3D。

Graphics中绘制和填充矩形的方法:

  • void clearRect (int x,int y,int w,int h):通过使用当前绘图表面的背景颜色填充指定的矩形来清除它。
  • void drawRect (int x,int y,int w,int h)
  • void drawRoundRect (int x,int y,int w,int h,int arcWidth,in arcHeight):使用此图形上下文的当前颜色绘制轮廓圆角矩形。
  • void draw3DRect (int x,int y,int w,int h,boolean raise)
  • void fillRoundRect (int x, int y,int w,int h,int arcWidth,int arcHeight)
  • void fillRect (int x,int y,int w,int h)
  • void fill3DRect(int x, int y, int w, int h, boolean raise)

上述方法中,x,y为起点坐标,w,h为从起点坐标向小,x,y轴延伸的长度

raise为ture,3D效果为凸,false,3D效果为凹

arcWidth是用来设置弧的水平直径,而arcHeight是用来指定竖直方向上的直径

在这里插入图片描述

import java.applet.Applet;
import java.awt.*;

public class demo03 extends Applet {
    public void paint(Graphics gg) {
        Graphics g = null;
        try {
            g = getGraphics();
            g.setColor(Color.LIGHT_GRAY);
            g.fill3DRect(100,100,100,100,true);
            g.draw3DRect(100,100,100,100,true);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            g.dispose();
        }
    }
}

draw3Drect()fill3Drect()绘制的矩形只有在,Color.LIGHT_GRAY下才可以看到他的3D效果

4、画弧

绘制和填充弧的方法:

  • void drawArc (int x,int y,int w,int h,int startAngle,int endAngle)

  • void fillArc (int x,int y,int w,int h,int startAngle,int endAngle)

    前面的四个参数的作用是为所要画(或填充)的弧指定坐标路径,而后面的两个参数的作用则是设置所要画的弧的开始角度和结束角度。

    import java.applet.Applet;
    import java.awt.*;
    
    public class demo03 extends Applet {
        public void paint(Graphics gg) {
            Graphics g = null;
            try {
                g = getGraphics();
                g.setColor(Color.LIGHT_GRAY);
                g.drawRect(100,100,100,100);
                g.fillArc(100,100,100,100,0,270);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                g.dispose();
            }
        }
    }
    
    

在这里插入图片描述

5、绘制椭圆

绘制和填充椭圆的方法:

  • void drawOval (int x,int y,int w,int h)

  • void fillOval (int x, int y,int w,int h)

参数的作用,都是给出椭圆所在的矩形框,如果给出的宽度和高度相同,那么所绘制的图形是–个圆。所绘制的椭圆就是与给出的外框相内切的椭圆。
和绘制外形的其他Graphics方法一样,drawOval ()所绘画的椭圆,适合的矩形是w +1个像素宽和h+1个像素高。

6、绘制多边形

绘制和填充多边形的方法:

  • void drawPolygon (int[ ] xPoints,int [] yPoints,int numPoints)
  • void drawPolygon ( Polygon polygon)
  • void fillPolygon (int[] xPoints,int [ ] yPoints,int numPoints)
  • void fillPolygon ( Polygon polygon)

通过规定Polygon对象或x和y 数组值来设置多边形的点,可以绘制或填充多边形。如果初始点和结束点不是同一个点多边形将自动闭合。
要注意的是:尽管在AWT中提供非图形Polygon 和 Rectangle类,但Graphics类不提供drawRect ( Rectangle)方法,尽管存在一个drawPolygon (Polygon)方法。

7、绘制文本

描述文本的方法:

  • void drawString (String s,int x,int y)
  • void drawChars (char [ ],int offset,int length,int x,int y)
  • void drawBytes (byte [],int offset,int length,int x,int y)
  1. 文本可以被设置为一个字符串、一个字符数组或一个字节数组,具体是哪种方式取决于具体的调用方法。
  2. 上面提供的显示文本的三种方法传递所绘制文本的x,y位置。位置对应的是文本基线,不是文本的左上角,和矩形不一样。
  3. 传递给drawChars ()和drawBytes ()的 offset和 length参数分别用来规定开始位置在数组中的偏移量和绘制的字符数。
  4. Graphics类不提供旋转文本的能力。

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值