`
tudusi
  • 浏览: 1051825 次
文章分类
社区版块
存档分类
最新评论

AWT绘制总结

 
阅读更多

1AWT包中的Graphics类绘制图形

方法:

drawLine(intx1,inty1,intx2,inty2)绘制直线,4个参数为起点与终点坐标

drawOval(intx,inty,intwidth,intheight)绘制椭圆,矩形区域左上角坐标与长宽

drawRect(intx,inty,intwidth,intheight)左上角坐标与长宽

drawArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle)绘制圆弧,弧作为椭圆一部分,后两个参数指定起点的角度与弧度

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

drawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)绘制圆角矩形后,后两个参数反映圆角的宽度与高度

drawString(Stringstr,intx,inty)绘制文字

fillOval(intx,inty,intwidth,intheight)绘制填充椭圆

fillRect(intx,inty,intwidth,intheight)绘制填充矩形

fillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)绘制填充圆角矩形

fillArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle)绘制填充扇形

2、显示文字

创建Font类对象

Fontmyfont=newFont("宋体",Font.BOLD,12)

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

参数3:字体大小

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

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

g.setFont(myfont);

GUI部件设置字体

Buttonbt=newButton("OK");

bt.setFont(myfont);

使用getFont()获取字体

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

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

intstringWidth(Strings)返回给定字符串的宽度

intgetHeight()返回字体的高度

intcharWidth(charch)返回给定字符的宽度

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

getHeight()返回部件的高度

getWidth()返回部件的宽度

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

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

3、颜色控制

创建Color

3种构造函数

publicColor(intRed,intGreen,intBlue)每个参数取值0~255

publicColor(floatRed,floatGreen,floatBlue)取值0.0~1.0

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

设置画笔颜色

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

获得当前颜色

getColor()

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

setBackground()设置背景色

setForeground()设置前景色

getBackground()获取GUI对象的背景

getForeground()获取GUI对象的前景

4Java2D图形绘制

使用Graphics的字类Graphics2Djava.awt.geom中定义

创建各种图形类对象

线段:Line2D.Floatline=newLine2D.Float(60F,12F,80F,40F)

矩形:Rectangle2D.FloatRectangle2D.Double创建

椭圆:Ellipse2D.Floatty=newEllipse2D.Float(113,20,30,40)

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

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

多边形:GeneralPathpolly=newGeneralPath();

3个方法:voidmoveTo(floatx,floaty)将一个点加入到路径

voidlineTo(floatx,floaty)将一个指定点加入路径用直线连接

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

指定填充方式:

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,booleancyclic):最后一个参数为true则支持周期渐变,周期渐变前后两点通常设置比较近,在填充范围可重复渐变形成花纹效果

设置画笔

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

BasicStroke构造函数:

BasicStroke(floatwidth)

BasicStroke(floatwidth,intcap,intjoin)

BasicStroke(floatwidth,intcap,intjoin,floatmiterlimit,float[]dash,floatdash_phase)

其中width表示线宽度;

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

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

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

绘制图形:

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

voidfill(shapes)绘制一个填充图形

voiddraw(shapes)绘制图形的边框

图形绘制变换

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

创建

AffineTransformtrans=newAffineTransform();

设置变换格式:

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

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

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

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

g2d.setTransform(trans);

g2d.draw(rect);

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics