huaxian.txt

来自「java 实现划线功能 java 实现划线功能」· 文本 代码 · 共 91 行

TXT
91
字号
import java.awt.*;
import java.awt.event.*;
public class MyMouseDraw1P extends WindowAdapter{
	Frame win;
	MyCanvas c;
	int x,y;
	
	public MyMouseDraw1P(){
		win = new Frame();
		x=-1;
		y=-1;
		c = new MyCanvas();
		win.setLayout(new BorderLayout(0,0));
		win.add(c, BorderLayout.CENTER);
		win.addWindowListener(this);
		win.setSize(400,260);
		win.setVisible(true);
	}
	public void windowClosing(WindowEvent e){
		System.exit(0);
	}
	public static void main(String[] args){
		MyMouseDraw1P mmd = new MyMouseDraw1P();
	}

	class MyCanvas extends Canvas implements MouseListener, MouseMotionListener{
		private Polygon p;
		MyCanvas(){
			p = new Polygon();
			addMouseListener(this);
			addMouseMotionListener(this);
		}
		public void mouseEntered(MouseEvent e){}
		public void mouseExited(MouseEvent e){}
		public void mouseClicked(MouseEvent e){}
		public void mouseMoved(MouseEvent e){}
		public void mousePressed(MouseEvent e){
			int mx,my;
			Graphics g=c.getGraphics();
			mx=e.getX();
			my=e.getY();
			if(x!=-1) {
			  g.setColor(Color.blue);	
			  g.drawLine(x, y, mx, my);
			}  
			p.addPoint(mx, my);
			x=mx;
			y=my;
			//repaint();
		}
		public void mouseReleased(MouseEvent e){
			int mx,my;
			Graphics g=c.getGraphics();
			mx=e.getX();
			my=e.getY();
			if(x!=-1) {
			  g.setColor(Color.blue);	
			  g.drawLine(x, y, mx, my);
			}  
			p.addPoint(mx, my);
			p.addPoint(-1, -1);
			
			x=-1;
			y=-1;
			//repaint();
		}
		public void mouseDragged(MouseEvent e){
			int mx,my;
			Graphics g=c.getGraphics();
			mx=e.getX();
			my=e.getY();
			if(x!=-1) {
			  g.setColor(Color.blue);	
			  g.drawLine(x, y, mx, my);
			}  
			p.addPoint(mx, my);
			x=mx;
			y=my;
			//repaint();
		}
		public void paint(Graphics g){
			g.setColor(Color.blue);
			for(int i=0; i<p.npoints-1; i++){
				if(p.xpoints[i+1]==-1)
					i++;
				else 
					g.drawLine(p.xpoints[i], p.ypoints[i], p.xpoints[i+1], p.ypoints[i+1]);
			}
		}
	}
}

⌨️ 快捷键说明

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