画图板

目标:在画图板上画一条直线

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

过程: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){}
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值