1、AWT包中的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对象的前景
4、Java2D图形绘制
使用Graphics的字类Graphics2D在java.awt.geom中定义
创建各种图形类对象
线段:Line2D.Floatline=newLine2D.Float(60F,12F,80F,40F)
矩形:Rectangle2D.Float或Rectangle2D.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
分享到:
相关推荐
JavaAWT编程总结.pdf
JAVA编程基础:第七章 AWT 事件模型 总结:类,方法,接口,其中总结了如何获得事件源,实现接口方法,是对awt的一些组件的总结
java实现画图编辑器,主要实现的功能有,线,圆,矩形(读者可自己添加),以及图像的保存,打开,画笔颜色的选择
什么是AWT 用AWT构建GUI 事件处理 AWT组件类库
awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...
java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能. 其它图形的绘制方法参考: https://blog.csdn.net/xietansheng/article/details/55669157
java关于事件的处理 awt及awt事件处理
java绘图 java awt 经典绘图的例子,对于初学awt模块的人非常有帮助.
awt,即各项异性小波变换的matlab实现
AWT Framework is a lightweight framework for building AWT applications. Layout is configed by XML files. Events and View Switchs is managed by framework. Also you can plugin your customized AWT or ...
说白了,awt的组件是由操作系统绘制的,我们也说awt组件是重量级的组件。 这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为...
Java的AWT包.pdf 学习资料 复习资料 教学资源
4.1 AWT工具集简介 4.2 AWT事件模型 4.3 GUI组件上的图形操作 4.4 常用的AWT组件
抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户...
Java的字母菱形
用AWT把实现的JAVA计算器
实用awt 控件