用java绘制图形,java类图怎么画
要用Java绘制基本图形,可以使用Java类库中的Graphics类,该类库位于java.awt包中。在我们自己的java程序文件中,为了使用Graphics类,我们需要使用import java.awt.Graphics语句导入Graphics类。
Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形等。本项目仅用到画直线的功能,其它图形绘制请自行点击查阅Java API。
Graphics类drawLine()方法:drawline (intx1,inty1,intx2,inty2)
此方法的功能是:在此图形上下文的坐标系中,使用当前颜色在点 (x1,y1) 和 (x2,y2)之间画一条线。
这里有几个概念需要理解:
1)图形语境:通俗地说,就是绘图环境。每个小部件(如主窗口、按钮等。)有自己的图形上下文对象,我们用它在小部件上绘制图片。这个对象是图形对象。
2)如何获取图形上下文:在我们想要绘制的组件上,我们可以调用那个组件的getGraphics()方法来获取那个组件的图形上下文对象,然后使用这个对象进行绘制。
3)、Java坐标系:
Java的坐标原点(0,0)位于屏幕的左上角。坐标测量以像素为单位。向右的水平方向是X轴的正方向,向下的垂直方向是Y轴的正方向。每个坐标点的值代表一个像素在屏幕上的位置,所有坐标点的值都是整数,如下图所示:
如何解决写爬虫IP受阻的问题?立即使用。
4)当前颜色:指图形上下文的当前颜色。每个图形上下文都有自己的当前颜色。颜色的变化可以通过Graphics对象的getColor()方法获得,setColor()方法可以设置颜色。
例子如下:
第一步:在DrawSee类中添加一个成员变量来描述游戏区域的特征。
对于DrawSee类来说,这个类的主要功能是与用户进行交互,即显示游戏区域、显示数字、响应用户的鼠标点击、显示用户鼠标点击后的结果等。现在我们来考虑画10行10列游戏区的问题。首先将以下四个成员变量添加到DrawSee类中:
导入Java . awt . color;
导入Java . awt . container;
导入Java . awt . font;
导入Java . awt . graphics;
导入Java . awt . event . mouse adapter;
导入Java . awt . event . mouse event;
导入javax . swing . jframe;
公共类DrawSee扩展JFrame {
私有静态final int sx=50//游戏区域中10*10个方块的起始横坐标
私有静态最终int sy=50//游戏区域中10*10正方形的起始纵坐标
私有静态final int w=40//每个小正方形的边长
私有静态final int rw=400//游戏区域中10*10正方形的边长
.
}第二步:添加绘制游戏区域的方法(即绘制一个10行10列的红色网格)
public void paintComponents(图形g) {
尝试{
//将线条颜色设置为红色
g.setColor(颜色。红色);
//绘制外部矩形框
g.drawRect(sx,sy,rw,rw);
/*水平画10个方块,垂直画10个方块。
*即水平方向9行,垂直方向9行,
*外围四条线已经画好了,不用再画了。
*与此同时,内部的64个方块被数字填满。
*/
for(int I=1;i 10i ) {
//画第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(异常e) {
e . printstacktrace();
}
}摘要:
导入Java . awt . color;
导入Java . awt . container;
导入Java . awt . font;
导入Java . awt . graphics;
导入Java . awt . event . mouse adapter;
导入Java . awt . event . mouse event;
导入javax . swing . jframe;
/**
*
*节目入口
*
*/
公共类TestDrawLine {
公共静态void main(String[] args) {
new DrawSee();
}
}
类DrawSee扩展JFrame {
私有静态final int sx=50//小方块的宽度
私有静态最终int sy=50//小方块的高度
私有静态final int w=40
私有静态final int rw=400
私图jg;
私有颜色rectColor=新颜色(0x F5 F5 f 5);
/**
* DrawSee构造方法
*/
公共DrawSee() {
容器p=getContentPane();
setBounds(100,100,500,500);
set visible(true);
p . set background(rect color);
set layout(null);
setResizable(false);
this . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);
尝试{
thread . sleep(500);
} catch(异常e) {
e . printstacktrace();
}
//获取专门用于在窗口界面上绘图的对象
jg=this . get graphics();
//绘制游戏区域
油漆组件(jg);
}
public void paintComponents(图形g) {
尝试{
//将线条颜色设置为红色
g.setColor(颜色。红色);
//绘制外部矩形框
g.drawRect(sx,sy,rw,rw);
/*水平画10个方块,垂直画10个方块。
*即水平方向9行,垂直方向9行,
*外围四条线已经画好了,不用再画了。
*与此同时,内部的64个方块被数字填满。
*/
for(int I=1;i 10i ) {
//画第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 10j ) {
//drawString(g,j,I);
}
}
} catch(异常e) {
e . printstacktrace();
}
}
}结果如图所示:
推荐教程:java开发入门以上是java如何绘制简单图形的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。