example11_2.java

来自「书中的例题」· Java 代码 · 共 73 行

JAVA
73
字号
import java.util.*;
import java.awt.*;
import java.awt.event.*;
class Point
{
 int x,y;
 Point(int x,int y)
  {
	 this.x=x;this.y=y;
  }
}

class PaintCanvs extends Canvas 
implements MouseMotionListener,MouseListener
{
   int x=-1,y=-1;
   Vector v=null;int n=1;
 PaintCanvs()
  {
   setBackground(Color.cyan);
   addMouseMotionListener(this);
   addMouseListener(this);
   v=new Vector(); 
 }
 public void paint(Graphics g)
 {
  if(x!=-1&&y!=-1)
   {
	 n=v.size();
     for(int i=0;i<n-1;i++)
       {
		Point p1=(Point)v.elementAt(i); 
        Point p2=(Point)v.elementAt(i+1); 
        g.drawLine(p1.x,p1.y,p2.x,p2.y);
       }
   }
 }
 public void mouseDragged(MouseEvent e)
 {
   x=(int)e.getX();
   y=(int)e.getY();
   Point p=new Point(x,y);
   v.addElement(p);
   repaint();
 }
 public void mouseReleased(MouseEvent e)
 {
	v.removeAllElements();
 }
 public void update(Graphics g)
  {
	paint(g);
  }
 public void mouseMoved(MouseEvent e)  {} 
 public void mousePressed(MouseEvent e){} 
 public void mouseEntered(MouseEvent e){}
 public void mouseExited(MouseEvent e) {}
 public void mouseClicked(MouseEvent e){}
}

 public class Example11_2 
  {
	public static void main(String[] args) 
	{
		Frame f=new Frame();
		f.setTitle("向量应用");
		f.setSize(300,200);
		f.show();
		f.add(new PaintCanvs());
		f.validate();
	}
  }
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?