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

📄 mousetest.java

📁 simple mouse pressed, clicked, dragged test applet.
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import javax.swing.*;

public class MouseTest extends JApplet {
	
	public void init() {
		MousePanel panel = new MousePanel();
		getContentPane().add(panel);
	}
}


class MousePanel extends JPanel {
	private static final int SAIZ = 10;
	private ArrayList segi4;
	private Rectangle2D rect;

	public MousePanel() {
		segi4 = new ArrayList();
		rect = null;

		addMouseListener(new MouseHandler());
		addMouseMotionListener(new MouseMotionHandler());
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D) g;

		for(int i=0; i<segi4.size(); i++)
			g2.draw( (Rectangle2D) segi4.get(i));
	}

	public Rectangle2D find(Point2D p) {
		for (int i=0; i < segi4.size(); i++) {
			Rectangle2D r = (Rectangle2D) segi4.get(i);
			if (r.contains(p))
				return r;
		}
		return null;
	}

	public void add(Point2D p) {
		double x = p.getX();
		double y = p.getY();

		rect = new Rectangle2D.Double(x-SAIZ/2, y-SAIZ/2, SAIZ, SAIZ);
		segi4.add(rect);
		repaint();
	}
	
	public void remove(Rectangle2D r) {
		if (r == null)
			return;
		if (r == rect)
			rect = null;
		segi4.remove(r);
		this.repaint();
	}


	private class MouseHandler extends MouseAdapter {

		public void mousePressed(MouseEvent e) {
			rect = find(e.getPoint());
			if (rect == null)
				add(e.getPoint());
		}

		public void mouseClicked(MouseEvent e) {
			rect = find(e.getPoint());
			if (rect != null && e.getClickCount() >= 2)
				remove(rect);
		}
	}

	private class MouseMotionHandler implements MouseMotionListener {
		public void mouseMoved(MouseEvent e) {
			if (find(e.getPoint()) == null)
				setCursor(Cursor.getDefaultCursor());
			else
				setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
		}

		public void mouseDragged(MouseEvent e) {
			if (rect != null) {
				int x = e.getX();
				int y = e.getY();

				rect.setFrame(x-SAIZ/2, y-SAIZ/2, SAIZ, SAIZ);
				repaint();
			}
		}
	}
}	

⌨️ 快捷键说明

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