旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java怎样绘制简朴图形【JAVA教程】,java,绘制,简单图形

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:48评论:0


导读:Java中绘制基础图形,能够运用Java类库中的Graphics类,此类位于java.awt包中。在我们本身的java顺序文件中,要运用Graphics类就须要运用import...

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怎样绘制简朴图形的细致内容,更多请关注ki4网别的相干文章!

标签:java绘制简单图形


欢迎 发表评论: