文件名称:Java中的Canvas绘图源码实例.rar
文件大小:46KB
文件格式:RAR
更新时间:2022-07-30 12:26:11
Java源码-网络相关
Java中的Canvas绘图源码实例,主要是画线条、弧线、圆角矩形、三角形、文字、圆形等简单的几何图形,主要是通过创建DrawingCanvas对象canvas,为canvas设置命令监听者,实现接口CommandListener的方法,把缓冲区图像的内容绘制到画布上,画图部分代码: int w = getWidth(); // 画布的宽度 int h = getHeight(); // 画布的高度 Image buffer = Image.createImage(w, h); // 用于绘图的缓冲图像 Graphics gc = buffer.getGraphics(); // 获取缓冲图像的图形环境 // 清除画布 public void clearScreen() { gc.setColor(255,255,255); // 设置绘图颜色为白色 gc.fillRect(0,0,w,h); // 把缓冲图像填充为白色 gc.setColor(255,0,0); // 设置绘图颜色为红色 } // 绘制直线 public void drawLine() { setTitle("直线"); // 设置画布的标题 clearScreen(); // 清除画布 gc.drawLine(10,10,w-20,h-20); // 绘制黑色直线 gc.setColor(0,0,255); // 设置绘图颜色为蓝色 gc.drawLine(10,h/2,w-10,h/2); // 绘制蓝色直线 } // 绘制弧 public void drawArc() { setTitle("弧线和填充弧"); clearScreen(); gc.drawArc(5,5,w/2-20,h/2-20,60,216); // 绘制弧线 gc.drawArc(5,h/2-10,w/2-20,h/2-20,0,360); // 绘制圆 gc.setColor(0,0,255); gc.fillArc(w/2,5,w/2-20,h/2-20,60,216); // 绘制填充弧线 gc.fillArc(w/2,h/2-10,w/2-20,h/2-20,0,360); // 绘制填充圆 } // 绘制矩形 public void drawRect() { setTitle("矩形和填充矩形"); clearScreen(); gc.drawRect(25,25,w/2-30,h/2-30); // 绘制矩形 gc.fillRect(w/2 25,25,w/2-30,h/2-30); // 绘制填充矩形 } // 绘制圆角矩形 public void drawRoundRect() { setTitle("圆角矩形和填充圆角矩形"); clearScreen(); gc.drawRoundRect(5,5,w-5-30,h/2-30,20,20); // 绘制圆角矩形 gc.setColor(0,0,255); gc.fillRoundRect(5,h/2,w-30,h/2-30,20,20); // 绘制填充圆角矩形 } // 绘制三角形 public void drawTriangle() { setTitle("填充三角形"); clearScreen(); gc.fillTriangle(w/2, h/6, w/6, h/2, w/2, h/2); } // 绘制文字 public void drawText() { setTitle("文字"); //设置标题 clearScreen(); gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_SMALL)); // 设置字体 gc.drawString("Hello World!",0,0,gc.TOP|gc.LEFT); // 使用当前字体绘制文字 gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_UNDERLINED,Font.SIZE_LARGE)); gc.drawString("Hello World!",0,h/3,gc.TOP|gc.LEFT); }
【文件预览】:
codesc.net
----Canvas绘图程序()
--------CanvasDemo.class(3KB)
--------100-1.bmp(300KB)
--------CanvasDemo.java(5KB)
--------CanvasDemo$DrawingCanvas.class(3KB)