您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java怎么绘制简单图形

2024/6/2 18:58:41发布31次查看
java中绘制基本图形,可以使用java类库中的graphics类,此类位于java.awt包中。在我们自己的java程序文件中,要使用graphics类就需要使用import java.awt.graphics语句将graphics类导入进来。
graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形等。本项目仅用到画直线的功能,其它图形绘制请自行点击查阅java api。
graphics类的drawline()方法:drawline(int x1,int y1,int x2,int y2)
此方法的功能是:在此图形上下文的坐标系中,使用当前颜色在点 (x1,y1) 和 (x2,y2)之间画一条线。
这里需要理解几个概念:
1)、图形上下文:通俗点讲,就是画图环境。每个窗口构件(如主窗口、按钮等),都有一个自己的图形上下文对象,我们就是使用这个对象来实现在构件上画图。这个对象就是graphics对象。
2)、如何获得图形上下文:我们要在哪个构件上绘图,就调用那个构件的getgraphics()方法即可获得该构件的图形上下文对象,然后使用这个对象绘图。
3)、java坐标系:
java的坐标原点(0,0)位于屏幕的左上角,坐标度量以象素为单位,水平向右为x轴的正方向,竖直向下为y轴的正方向,每个坐标点的值表示屏幕上的一个像素点的位置,所有坐标点的值都取整数,如下图所示:
4)、当前颜色:指图形上下文当前的颜色。每个图形上下文都有自己当前的颜色。通过graphics对象的getcolor()方法可获取改颜色,setcolor()方法可设置颜色。
示例如下:
第一步:给drawsee类添加成员变量,用来描述游戏区域的特征。
对drawsee类来说,此类主要完成的功能是与用户交互,即显示游戏区域,显示数字,响应用户鼠标点击,显示用户鼠标点击后的结果等。我们现在考虑绘制10行10列游戏区域的问题。先给drawsee类添加如下四个成员变量:
import java.awt.color;import java.awt.container;import java.awt.font;import java.awt.graphics;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;import javax.swing.jframe;public class drawsee extends jframe { private static final int sx = 50;//游戏区域10*10方块的起始横坐标 private static final int sy = 50;//游戏区域10*10方块的起始纵坐标 private static final int w = 40;//每个小方格的边长 private static final int rw = 400;//游戏区域10*10方块的边长 ...}
第二步:添加绘制游戏区域的方法(即绘制10行10列的红色网格)
public void paintcomponents(graphics g) { try { // 设置线条颜色为红色 g.setcolor(color.red); // 绘制外层矩形框 g.drawrect(sx, sy, rw, rw); /* 绘制水平10个,垂直10个方格。 * 即水平方向9条线,垂直方向9条线, * 外围四周4条线已经画过了,不需要再画。 * 同时内部64个方格填写数字。 */ for(int i = 1; i < 10; i ++) { // 绘制第i条竖直线 g.drawline(sx + (i * w), sy, sx + (i * w), sy + rw); // 绘制第i条水平线 g.drawline(sx, sy + (i * w), sx + rw, sy + (i * w)); } } catch (exception e) { e.printstacktrace(); } }
总结:
import java.awt.color;import java.awt.container;import java.awt.font;import java.awt.graphics;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;import javax.swing.jframe;/** * * 程序入口 * */public class testdrawline { public static void main(string[] args) { new drawsee(); } } class drawsee extends jframe { private static final int sx = 50;//小方格宽度 private static final int sy = 50;//小方格高度 private static final int w = 40; private static final int rw = 400; private graphics jg; private color rectcolor = new color(0xf5f5f5); /** * drawsee构造方法 */ public drawsee() { container p = getcontentpane(); setbounds(100, 100, 500, 500); setvisible(true); p.setbackground(rectcolor); setlayout(null); setresizable(false); this.setdefaultcloseoperation(jframe.exit_on_close); try { thread.sleep(500); } catch (exception e) { e.printstacktrace(); } // 获取专门用于在窗口界面上绘图的对象 jg = this.getgraphics(); // 绘制游戏区域 paintcomponents(jg); } public void paintcomponents(graphics g) { try { // 设置线条颜色为红色 g.setcolor(color.red); // 绘制外层矩形框 g.drawrect(sx, sy, rw, rw); /* 绘制水平10个,垂直10个方格。 * 即水平方向9条线,垂直方向9条线, * 外围四周4条线已经画过了,不需要再画。 * 同时内部64个方格填写数字。 */ for(int i = 1; i < 10; i ++) { // 绘制第i条竖直线 g.drawline(sx + (i * w), sy, sx + (i * w), sy + rw); // 绘制第i条水平线 g.drawline(sx, sy + (i * w), sx + rw, sy + (i * w)); // 填写第i行从第1个方格到第8个方格里面的数字(方格序号从0开始) for(int j = 0; j < 10; j ++) { //drawstring(g, j, i); } } } catch (exception e) { e.printstacktrace(); } }}
结果如图:
推荐教程:java开发入门
以上就是java怎么绘制简单图形的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product