当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-05-13
目标:在画图板上画一条直线,供大家参考,具体内容如下 一、首先需要建立一个界面 过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。 2、对于一个界面,我们

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

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

过程: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 并且监听器对象上设置该画布。

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

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

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

3、开始画直线

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

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

//记录坐标
int x1,y1,x2,y2;
 
//定义Graphics
Graphics 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){}
}

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

网友评论