在计算机中,图形是一门很高深的学问,在我看来,因为里面涉及到比较多的数学问题...... 用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()方法,此方法是在创建类时自动调用的。 |
|
来自: pythonjava学习 > 《待分类》