首页 > 编程 > Java > 正文

java实现画图板上画一条直线

2019-11-26 08:41:25
字体:
来源:转载
供稿:网友

目标:在画图板上画一条直线,供大家参考,具体内容如下

一、首先需要建立一个界面

过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。

2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。

3、写主方法去实现界面。

(目前界面还未实现画图板的功能)

public class DrawUI {  //显示界面的方法 public void show(){    //创建界面对象 JFrame jframe = new JFrame();    //设置界面的尺寸、位置居中、关闭、标题 jframe.setSize(1000, 900); jframe.setLocationRelativeTo(null); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setTitle("画图板v2.0");     //设置界面可见    jframe.setVisible(true); } //主方法 public static void main(String[] args){ DrawUI UI = new DrawUI(); UI.show(); } }

二、创建监听器类

1、重新创建一个监听器(Listener)的类:要在界面上实现画图,我们需要给界面添加监听器。====>实际上是让鼠标的一些指令能够在界面上有反应。换言之,监听器是一个连接鼠标与界面的桥梁。

2、监听器类(Listener)实现鼠标监听器(MouseListener)的接口.

3、加入鼠标监听器下的所有方法。

public class Listener implements MouseListener{     //鼠标点击 public void mouseClicked(MouseEvent e){}    // 鼠标按下  public void mousePressed(MouseEvent e){}    //鼠标松开  public void mouseReleased(MouseEvent e){}    // 进入  public void mouseEntered(MouseEvent e){}    // 退出   public void mouseExited(MouseEvent e){} }

三、实现画出直线

1、创建监听器类(Listener)后,我们需要在界面类中添加监听器  =====> 在界面上添加监听器后,我们才能在界面上画图。(写在画图板“可见”之前 )。

在画图板中输入一下代码

//创建监听器 Listener draw = new Listener(); //添加监听器 jframe.addMouseListener(draw);

2、画一条直线,我们需要用Graphics (画布工具)用于画图。在此,画图板需要获取Graphics 并且监听器对象上设置该画布。

(写在画图板“可见”之后)

//获取GraphicsGraphics graph = jframe.getGraphics();//给监听器的画布对象赋值draw.setGraphics(graph);

然后转到监听器类(Listener)中输入代码

3、开始画直线

<1> 首先,画一条直线我们需要获取直线两端点的坐标。所以定义x1,y1,x2,y2。

<2>画布画图,需要定义Graphics

//记录坐标int x1,y1,x2,y2; //定义GraphicsGraphics graph1;

<3> 传画布(Graphics)值的方法 ====> 画图板上的画布值等于监听器上的画布值

//传画布值的方法public void setGraphics(Graphics graph2){graph1 = graph2;

<4>鼠标画出直线

在鼠标按下事件中输入起点坐标

 public void mousePressed(MouseEvent e){  //获取按下信息  x1=e.getX();  y1=e.getY();  }

在鼠标松开事件中输入终点坐标,并画出直线

public void mouseReleased(MouseEvent e){  //获取松开信息  x2=e.getX();  y2=e.getY();  //画线  graph1.drawLine(x1,y1,x2,y2);  }

四、完整过程:

界面

package Draw; import java.awt.Graphics; import javax.swing.JFrame; public class DrawUI { public void show(){ JFrame jframe = new JFrame(); jframe.setSize(1000, 900); jframe.setLocationRelativeTo(null); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setTitle("画图板v2.0");  //创建监听器 Listener draw = new Listener();  //添加监听器 jframe.addMouseListener(draw);   jframe.setVisible(true); //获取Graphics Graphics graph = jframe.getGraphics(); //给监听器的画布对象赋值 draw.setGraphics(graph); } //主方法 public static void main(String[] args){ DrawUI UI = new DrawUI(); UI.show(); } }

监听器

package Draw; import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;  public class Listener implements MouseListener{ //记录坐标 int x1,y1,x2,y2;  //定义Graphics Graphics graph1;  //传画布值的方法 public void setGraphics(Graphics graph2){ graph1 = graph2;   }   public void mouseClicked(MouseEvent e){}   public void mousePressed(MouseEvent e){  //获取按下信息  x1=e.getX();  y1=e.getY();  }   public void mouseReleased(MouseEvent e){  //获取松开信息  x2=e.getX();  y2=e.getY();  //画线  graph1.drawLine(x1,y1,x2,y2);  }    public void mouseEntered(MouseEvent e){}   public void mouseExited(MouseEvent e){}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表