java学习——102.画直线

在计算机中,图形是一门很高深的学问,在我看来,因为里面涉及到比较多的数学问题......

用JAVA是可以画图的。

今天介绍简单的用Java画直线。

Java提供在组件上绘图的功能,通过绘图类Graphics对象调用绘图方向实现。

1、Graphics图形类

Graphics类在Java.awt中被定义,可以设置图形颜色、字符串字体等,其声明如下:

public abstract class Graphics extends Object

{

public abstract Color getColor(); //获取当前颜色

public abstract void setColor(Color c); //设置颜色

public abstract void drawLine(int x1, int y1, int x2, int y2); //画直线

public void drawRect(int x, int y, int width, int height) ; //画矩形

public abstract void fillRect(int x, int y, int width, int height); //填充矩形

public abstract void drawOval(int x, int y, int width, int height); //画椭圆

public abstract void drawString(String str, int x, int y); //显示字符串

public abstract Font getFont(); /获得颜色

public abstract void setFont(Font font);//设置颜色

}

但Graphics类是一个抽象类,不能被具体地实例化,要具体的画图,一般是通过在画布上进行画。

2、画布类Canvas

Canvas类也在Java.awt中。

可通过创建Canvas的实例来创建画布类组件。

3、组件绘图方法

在Java.awt.Component类中声明有方法:

        public void paint(Graphics g);  //组件绘制图形

         public void repaint(); //调用paint()方法刷新图形

4、示例

在窗口中画对角线。

其完整代码如下:

import java.awt.*;

import javax.swing.*;

class CircleCanvas extends Canvas{//本类继承自画布类,用作绘图的面板,因为Java不允许多继承,所以要用此类

public void paint(Graphics g){//调用方法paint()来绘图

int x=this.getWidth()/2;//定义坐标x为横坐标的中心,this.getWidth()是取当前窗口的宽度

int y=this.getHeight()/2;//定义坐标y为纵坐标的中心,this.getHeight()是取当前窗口的高度

g.setColor(Color.red);//设置颜色为红色

g.drawLine(x, y, this.getWidth(), this.getHeight());//本例我是从中心开始画四条直线,最终合成对角线,调用Graphics的erawLine()方法来画直线

g.setColor(Color.green);

g.drawLine(x, y, 0, 0);

g.setColor(Color.red);

g.drawLine(x, y, this.getWidth(), 0);

g.setColor(Color.green);

g.drawLine(x, y, 0, this.getHeight());

}

}

public class Draw_Circle extends JFrame{//主类

private CircleCanvas circle;//创建对象

public Draw_Circle(){

super("画直线");

this.setVisible(true);

this.setBounds(200, 200, 200, 200);

circle=new CircleCanvas();//创建实例

this.getContentPane().add(circle);

}

publicstaticvoid main(String args[]){

new Draw_Circle();

}

}

其运行结果如下:

从本例可以发现,用Canvas绘图时,创建实例时并没有去调用paint()方法,此方法是在创建类时自动调用的。

(0)

相关推荐

  • 第5章 子类与继承

    主要内容  子类与父类  子类的继承性  子类与对象  成员变量的隐藏和方法重写 重点与难点:  重点:重点是类的继承性.方法重写.  难点:难点是理解子类继承过程中成员变量的隐藏与方法重 ...

  • java学习——103.画同心圆

    接上篇,上篇是将直线画在一块画布上的. 但是,paint()方法其实是每一个组件都包含的方法,故可直接在窗口中画图. 本篇,以同心圆为例,在窗口中直接画同心圆. 此同心圆从窗口的中心位置开始,向外辐射 ...

  • 5分钟钢笔画课堂第102讲:零基础新手学习钢笔画从这里开始

    汤老师钢笔画课堂第102讲:零基础新手学习钢笔画从这里开始 汤向老师彩色钢笔画<梨花树下>客串一下插图,本作宽75厘米,画了4个月 新手问:我是零基础的小白,我从来没画过,我现在想学啦,我 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • 零基础学习钢笔画可以先从练习线条开始!

    零基础学习钢笔画可以先从练习线条开始!

  • 你见过小清新画风的印象派作品吗?这张就是,一起来学习如何画吧

    你见过小清新画风的印象派作品吗?这张就是,一起来学习如何画吧

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • 画画新手入门学习怎么画几何素描?几何素描绘画教程

    画画新手入门学习怎么画几何素描?几何素描绘画教程,石膏圆柱体是素描初学者经常要画的一种几何体.圆柱体是以矩形的一边为轴,水平旋转的形态,其顶面和底面的平面的圆心连线是柱体的中轴位置,形成了其宽度为圆面 ...