⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 canvas2.java

📁 这是一个java程序
💻 JAVA
字号:
//在画布上手工画图
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
public class Canvas2 extends Applet implements ActionListener {
	Button line, point, clear;
	MyCanvas2 c;
	public void init() {
		c=new MyCanvas2();
		c.setSize(350,200);
		c.setBackground(Color.green);
		line=new Button("画线");
		point=new Button("画点");
		clear=new Button("清除");
		add(line);
		add(point);
		add(clear);
		add(c);
		line.addActionListener(this);
		point.addActionListener(this);
		clear.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e) {
		if (e.getSource()==line)// 设为画直线模式
		c.mode=0;
		else if (e.getSource()==point)// 设为画连续点模式
		c.mode=1;
		else if (e.getSource()==clear) {// 清除画面
			c.points=new Vector();
			c.x1= -1;
			c.repaint();
		}
	}
	
}
class MyCanvas2 extends Canvas implements MouseListener,MouseMotionListener {
	int x1, y1, x2, y2, mode;
	Vector points=new Vector();
	MyCanvas2() {
		addMouseListener(this);
		addMouseMotionListener(this);
	}
	public void paint(Graphics g) {
		for (int i=0;i<points.size();i++) { // 所有操作结果被重新画出
			Rectangle r=(Rectangle)points.elementAt(i);
			g.drawLine(r.x, r.y, r.width, r.height);
		}
		if (x1!= -1 && mode ==0)//画当前直线
			g.drawLine(x1, y1, x2, y2);
	}
	public void mousePressed(MouseEvent e) {// 记录起点坐标
		x1=e.getX();
		y1=e.getY();
	}
	public void mouseDragged(MouseEvent e) {
		if (mode==0) {// 记录当前坐标
			x2=e.getX();
			y2=e.getY();
		}
		else {// 画连续点时保存每一个笔画的起点和当前坐标
			points.addElement(new Rectangle(x1, y1, e.getX(), e.getY()));
			x1=e.getX();
			y1=e.getY();
		}
		repaint();
	}
	public void mouseReleased(MouseEvent e) {
	if (mode==0)// 保存当前直线的起点和终点坐标
		points.addElement(new Rectangle(x1, y1, e.getX(), e.getY()));
	}
	public void mouseClicked(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mouseMoved(MouseEvent e) {}
}

⌨️ 快捷键说明

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