AWT绘制总结

 

1AWT包中的 Graphics类 绘制图形

    方法:

        drawLine(int x1,int y1,int x2,int y2)绘制直线,4个参数为起点与终点坐标

        drawOval(int x,int y,int width,int height)绘制椭圆,矩形区域左上角坐标与长宽

        drawRect(int x,int y,int width,int height)左上角坐标与长宽

        drawArc(int x,int y, int width,int height,int startAngle,int arcAngle)绘制圆弧,弧作为椭圆一部分,后两个参数指定起点的角度与弧度

        drawPolygon(int[] xPoints,int[] yPoints,int nPoints)绘制多边形,前面两个参数分别给出多边形按顺序排列的各角的x,y坐标,最后一个参数给出坐标点数量

        drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)绘制圆角矩形后,后两个参数反映圆角的宽度与高度

 

        drawString(String str,int x,int y)绘制文字

 

        fillOval(int x,int y,int width,int height)绘制填充椭圆

        fillRect(int x,int y,int width,int height)绘制填充矩形

        fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)绘制填充圆角矩形

        fillArc(int x,int y,int width,int height,int startAngle,int arcAngle)绘制填充扇形

2、显示文字

创建Font类对象

Font myfont=new Font("宋体",Font.BOLD,12)

参数1:字体名;参数2:风格常量(Font类中定义了3个:Font.PLAIN 普通,Font.ITALIC 斜体,Font.BOLD 粗体)

参数3:字体大小

要同时兼有几种风格通过"+"连接    Font.BOLD+Font.ITALIC

使用Graphics类的 setFont()方法设置字体

g.setFont(myfont);

GUI部件设置字体

Button bt=new Button("OK");

bt.setFont(myfont);

 

使用getFont()获取字体

FontMetrics类获得关于字体的更多信息

    先调用getFontMetrics(Font)得到FontMetrics对象引用

    int stringWidth(String s)返回给定字符串的宽度

    int getHeight()返回字体的高度

    int charWidth(char ch)返回给定字符的宽度

 

注意:在所有图形部件的父类Component中有如下方法:

    getHeight()返回部件的高度

    getWidth()返回部件的宽度

或者调用getSize()返回一个Dimension类型对象,使用其属性 height,width访问

Applet能使用上术方法,但是getHeight()/getWidth()JDK1.2以后才支持,考虑兼容性建议使用getSize

 

3、颜色控制

创建Color

    3种构造函数

        public Color(int Red,int Green,int Blue)每个参数取值0~255

        public Color(float Red,float Green,float Blue)取值0.0~1.0

        public Color(int RGB)HTML中的颜色方式,一般使用十六进制 最大值为0xff(255)

设置画笔颜色

    setColor(new Color(190,22,244))/使用Color类常量setColor(Color.blue)

获得当前颜色

    getColor()

注意:在所有图形部件的父类Component中有如下方法:

    setBackground()设置背景色

    setForeground()设置前景色

    getBackground()获取GUI对象的背景

    getForeground()获取GUI对象的前景

 

4Java 2D图形绘制

使用Graphics的字类Graphics2D  在 java.awt.geom中定义

创建各种图形类对象

     线段:Line2D.Float line=new Line2D.Float(60F,12F,80F,40F)

     矩形:Rectangle2D.FloatRectangle2D.Double创建

     椭圆:Ellipse2D.Float ty=new Ellipse2D.Float(113,20,30,40)

     弧:  用Arc2D.Float创建接收7个参数,最后一个在 3个常量中取:

            Arc2D.OPEN(不闭合);Arc2D.CHORD(使用线条连接弧的两端点);Arc2D.PIE(将弧的端点与椭圆中心连接起来,形成扇形);

     多边形:GeneralPath polly=new GeneralPath();

            3个方法:void moveTo(float x,float y)将一个点加入到路径

                     void lineTo(float x,float y)将一个指定点加入路径用直线连接

                     void closePath()将多边形的终点与始点连接闭合

指定填充方式:

    setPaint(Paint)

        3个实现Paint的类

            Color:单色填充

            GradientPaint(x1,y1,color1,x2,y2,color2):渐变填充 从(x1,y1)(x2,y2)作渐变填充

                                                      开始颜色为color1,终点颜色为color2

            GradientPaint(x1,y1,color1,x2,y2,color2,boolean cyclic):最后一个参数为true则支持周期渐变,周期渐变前后两点通常设置比较近,在填充范围可重复渐变形成花纹效果

 

设置画笔

setStroke()方法使用 BasicStroke对象作为参数,可设置绘制图形线条宽度和连接形状

    BasicStroke构造函数:

        BasicStroke(float width)

        BasicStroke(float width,int cap,int join)

        BasicStroke(float width,int cap,int join,float miterlimit,float[] dash,float dash_phase)

其中width表示线宽度;

cap决定线条端点修饰样式,3个常量:CAP_BUTT(无端点)CAP_ROUND(圆形端点)CAP_SQUARE(方行端点);

join代表线条的连接点样式,取值3个常量:JOIN_MITER(尖角)JOIN_ROUND(圆角)JOIN_BEVEL(扁平角);

最后一个构造方法可规定虚线方式;

 

绘制图形:

    无论绘制何种图形,都使用相同的Graphics2D方法:

        void fill(shape s)绘制一个填充图形

        void draw(shape s)绘制图形的边框

 

图形绘制变换

    利用AffineTransform类实现图形绘制变换:平移、缩放、旋转

        创建

            AffineTransform trans=new AffineTransform();

        设置变换格式:

            translate(double a,double b)将图形坐标偏移到(a,b)处,绘制时按新原点确定坐标

            scale(    double a,double b)将图形在X轴方向缩放a倍,Y轴方向缩放b

            rotate(   double angle,double,x,double y)将图形按(x,y)为轴中心旋转angle个弧度

Graphics2D对象设置为采用该变换的画笔

    g2d.setTransform(trans);

    g2d.draw(rect);

 

(Java Applet作为一种图形部件,是面板(Panel)的子类)

 

此文章摘自:http://blog.yuanjutianxia.com/article_info_18.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值