Java AWT绘图
来源:互联网 发布:c语言中指针的作用 编辑:程序博客网 时间:2024/05/15 12:15
画图的实现原理
在Component类里提供了和绘图有关的三个方法:
(1)paint(Graphics g):绘制组件的外观
(2)update(Graphics g):调用paint()方法,刷新组件外观
(3)repaint():调用update()方法,刷新组件外观
上面三个方法的调用关系为:repaint()方法调用update()方法;update()方法调用paint()方法
Container类中的update()方法先以组件的背景色填充整个组件区域,然后调用paint()方法重画组件
Container类的update()方法代码如下:
public void update(Graphics g) {if (isShowing()) {// 以组件的背景色填充整个组件区域if (!(peer instanceof LightweightPeer)) {g.clearRect(0, 0, width, height);}paint(g);}}
普通组件的update()方法则直接调用paint()方法:
public void update(Graphics g) {paint(g);}Graphics类
Graphics类是一个抽象的画笔对象,Graphics可以在组件上绘制丰富多彩的几何图形和位图
Graphics类提供以下几个方法用于绘制几何图形和位图:
(1)drawLine():绘制直线
(2)drawString():绘制字符串
(3)drawRect():绘制矩形
(4)drawRoundRect():绘制圆角矩形
(5)drawOval():绘制椭圆形状
(6)drawPolygon():绘制多边形边框
(7)drawArc():绘制一段圆弧(可能是椭圆的圆弧)
(8)drawPolyline():绘制折线
(9)fillRect():填充一个矩形区域
(10)fillRoundRect():填充一个圆角矩形区域
(11)fillOval():填充椭圆区域
(12)fillPolygon():填充一个多边形区域
(13)fillArc():填充圆弧和圆弧两个端点到中心连线所包围的区域
(14)drawImage():绘制位图
除此之外,Graphics还提供了setColor()和setFont()两个方法用于设置画笔的颜色和字体(仅当绘制字符串时有效),其中setColor()方法需要传入一个Color参数,他可以使用RGB、CMYK等方式设置一个颜色;而setFont()方法需要传入一个Font参数,Font参数需要指定字体名、字体样式、字体大小三个属性
package codes11;import java.awt.BorderLayout;import java.awt.Button;import java.awt.Canvas;import java.awt.Color;import java.awt.Dimension;import java.awt.Frame;import java.awt.Graphics;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Random;public class SimpleDraw {private final String RECT_SHAPE = "rect";private final String OVAL_SHAPE = "oval";private Frame f = new Frame("简单绘图");private Button rect = new Button("绘制矩形");private Button oval = new Button("绘制圆形");private MyCanvas drawArea = new MyCanvas();// 用于保存需要绘制什么图形的变量private String shape = "";public void init() {Panel p = new Panel();rect.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 设置shape变量为RECT_SHAPEshape = RECT_SHAPE;// 重画Mycanvas对象,即调用它的update()方法drawArea.repaint();}});oval.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {shape = OVAL_SHAPE;drawArea.repaint();}});f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});p.add(rect);p.add(oval);drawArea.setPreferredSize(new Dimension(250, 180));f.add(drawArea);f.add(p, BorderLayout.SOUTH);f.pack();f.setVisible(true);}class MyCanvas extends Canvas {// 重写Canvas的paint()方法,实现绘图public void paint(Graphics g) {Random rand = new Random();if (shape.equals(RECT_SHAPE)) {// 设置画笔颜色g.setColor(new Color(220, 100, 80));// 随机绘制一个矩形框g.drawRect(rand.nextInt(200), rand.nextInt(100), 40, 60);}if (shape.equals(OVAL_SHAPE)) {g.setColor(new Color(80, 100, 200));// 随机填充一个实心圆形g.fillOval(rand.nextInt(200), rand.nextInt(120), 50, 40);}}}public static void main(String[] args) {new SimpleDraw().init();}}
- java awt绘图
- java awt paint绘图
- Java AWT绘图
- java:AWT绘图
- JAVA学习AWT绘图
- java AWT 绘图
- [疯狂Java]AWT:绘图、动画
- AWT绘图
- java基础 ---AWT中基本的绘图API
- 在AWT中绘图
- AWT绘图工具Graphics
- J2SE AWT :用drawImage绘图
- AWT绘图与音频播放
- java.awt
- java.awt
- java awt
- java-awt
- Java AWT
- linux下运行Mplayer图形窗口不显示及没反应的解决方法
- Java单例模式的几种写法详解
- 黑马程序员_Java_线程池
- 单元测试,集成测试,系统测试 的区别和联系
- 关于正则表达式的学习整理
- Java AWT绘图
- Asp中addnew与insert into的区别
- 08hibernate hibernate的核心开发接口介绍及三种对象状态(重点)
- Android中View绘制流程以及invalidate()等相关方法分析
- 各品牌智能手机耳机标准
- 网络安全铁人三项赛:勿以资本出身论英雄 !
- 特征值和奇异值(svd)
- matlab遗传算法工具箱的安装
- iText 字体设置错误