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

📄 xortest.java

📁 java2图形设计卷1:awt 源码
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class xortest extends Applet {
	Point	pressed, last;
	Image 	image;
	boolean firstRect;

	public void init() {
		image = getImage(getCodeBase(), "saint.gif");
		try {
			MediaTracker mt = new MediaTracker(this);
			mt.addImage(image, 0);
			mt.waitForID(0);
		}
		catch(InterruptedException e) {
			e.printStackTrace();
		}
		addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				firstRect = true;
				pressed   = e.getPoint();				
			}
			public void mouseReleased(MouseEvent e) {
				if(pressed != null) {
					Point  		released = e.getPoint();
					Rectangle 	clip 	= new Rectangle();
					Graphics 	g 		= getGraphics();
					Dimension 	size 	= getSize();

					try {
						clip.x = pressed.x;
						clip.y = pressed.y;
						clip.width  = 
							Math.abs(released.x - pressed.x);
						clip.height = 
							Math.abs(released.y - pressed.y);

						g.clearRect(0,0,size.width,size.height);
						g.setClip(clip);
						g.drawImage(image, 0, 0, xortest.this);
					}
					finally {
						g.dispose();
					}
				}
			}
			public void mouseClicked(MouseEvent e) {
				repaint();
			}
		});
		addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseDragged(MouseEvent e) {
				Point loc = e.getPoint();
				Graphics g = getGraphics();

				try {
					g.setXORMode(getBackground());

					if(firstRect) {
						firstRect = false;	
					}
					else {
						g.drawRect(pressed.x, pressed.y, 
								Math.abs(pressed.x - last.x), 
								Math.abs(pressed.y - last.y));
					}
					g.drawRect(pressed.x, pressed.y, 
							Math.abs(loc.x - pressed.x), 
							Math.abs(loc.y - pressed.y));
					last = e.getPoint();
				}
				finally {
					g.dispose();
				}
			}
		});
	}
	public void paint(Graphics g) {
		g.drawImage(image, 0, 0, this);
	}
}

⌨️ 快捷键说明

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