1、AWT包中的 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对象的前景
4、Java 2D图形绘制
使用Graphics的字类Graphics2D 在 java.awt.geom中定义
创建各种图形类对象
线段:Line2D.Float line=new Line2D.Float(60F,12F,80F,40F)
矩形:Rectangle2D.Float或Rectangle2D.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