做一个简易画图板(直线或矩形)

做一个简易的画图板

这里只演示画直线和矩形的代码,其余可自由拓展


步骤:

1,新建窗体

2,设置窗体属性

3,为鼠标添加动作监听器

4,创建MyListener类使之继承接口类MouseListener

5,获得鼠标按下和释放点的坐标

6,新建画笔,使画成直线


环境:

win8下的eclipse


package lessonPackage;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Draw extends JFrame
{
	public static void main(String[]args)
	{
		Draw db=new Draw();
		db.initFrame();
	}
	public void initFrame()
	{
		this.setTitle("画板");
		this.setSize(800,600);
		this.setLayout(new FlowLayout());
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(3);
		
		this.setVisible(true);
		//得到画笔,必须在窗体可见之后
		Graphics g=this.getGraphics();
		//安装监听器
		MyListener mouse=new MyListener(g);
		this.addMouseListener(mouse);
	}
}
package lessonPackage;
import java.awt.*;
import java.awt.event.*;
public class MyListener implements MouseListener
{
 public Graphics g1;
 public int x1,x2,y1,y2;
 //重载MyListener构造函数
 public MyListener(Graphics g)
 {
  g1=g;
 }
 /**
  * 鼠标按下时执行
  */
 public void mousePressed(MouseEvent e) 
 {
  //确定按下时坐标
  x1=e.getX();
  y1=e.getY();
 }
 /**
  * 鼠标释放时执行
  */
 public void mouseReleased(MouseEvent e) 
 {
  //确定释放时坐标
  x2=e.getX();
  y2=e.getY();
  //在按下和释放两点之间绘制图像,需要用画笔Graphics
  //g1.drawLine(x1, y1, x2, y2);
  int width=Math.abs(x2-x1);
  int height=Math.abs(y2-y1);
  int minX=Math.min(x1, x2);
  int minY=Math.min(y1, y2);
  g1.drawRect(minX, minY, width, height);
  
 }
 /**
  * 鼠标点击时执行
  */
 public void mouseClicked(MouseEvent e) 
 {
  
 }
 /**
  * 鼠标进入时执行
  */
 public void mouseEntered(MouseEvent e)
 {
  
 }
 /**
  * 鼠标出去时执行
  */
 public void mouseExited(MouseEvent e) 
 {
  
 }
 
}

重要知识点:

普通类,抽象类,接口类之间的关系

1,普通类可以调用构造方法构造对象,但抽象类和接口类不可以,因此通常接口类和抽象类用来作为父类

2,普通类不能调用抽象方法,而抽象类中有抽象方法,接口类中只能有抽象方法,因此,当继承抽象类或

     接口类时,普通类需重写父类抽象方法

3,普通类可同时继承多个接口,但只能同时继承一个抽象类


 



猜你喜欢

转载自blog.csdn.net/dream_18/article/details/51571225