draweclipseml.java

来自「用JAVA写的画图软件」· Java 代码 · 共 78 行

JAVA
78
字号
// 画线鼠标监听器
package graphInterface;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JPanel;

public class DrawEclipseML implements MouseListener, MouseMotionListener {

	private static JPanel sourcePanel;

	private static JPanel infoPanel;

	private static Graphics gra;

	private static Graphics infoGra;

	private static int x0, y0, xt, yt, a, b;

	public DrawEclipseML(JPanel sp, JPanel ip) {
		sourcePanel = sp;
		infoPanel = ip;
		gra = sp.getGraphics();
		infoGra = ip.getGraphics();
	}

	public void mouseClicked(MouseEvent me) {
	}

	public void mouseDragged(MouseEvent me) {
		infoGra.drawString("纵向长:" + b, 12, 52);
		infoGra.drawString("横向长:" + a, 12, 72);
		Alg.eclipse(gra, x0, y0, a, b);
		xt = me.getX();
		yt = me.getY();
		a = Math.abs(xt - x0);
		b = Math.abs(yt - y0);
		Alg.eclipse(gra, x0, y0, a, b);
		infoGra.drawString("纵向长:" + b, 12, 52);
		infoGra.drawString("横向长:" + a, 12, 72);
	}

	public void mouseEntered(MouseEvent me) {
	}

	public void mouseExited(MouseEvent me) {
	}

	public void mouseMoved(MouseEvent me) {
	}

	public void mousePressed(MouseEvent me) {
		infoGra.drawString("椭圆心:" + x0 + ", " + y0, 12, 32);
		infoGra.drawString("纵向长:" + b, 12, 52);
		infoGra.drawString("横向长:" + a, 12, 72);
		x0 = me.getX();
		y0 = me.getY();
		a = b = 0;
		gra.setXORMode(Color.green);
		gra.setColor(Color.white);
		Alg.eclipse(gra, x0, y0, a, b);
		infoGra.setXORMode(Color.green);
		infoGra.drawString("椭圆心:" + x0 + ", " + y0, 12, 32);
		infoGra.drawString("纵向长:" + b, 12, 52);
		infoGra.drawString("横向长:" + a, 12, 72);
	}

	public void mouseReleased(MouseEvent me) {
		Alg.eclipse(gra, x0, y0, a, b);
		gra.setPaintMode();
		Alg.eclipse(gra, x0, y0, a, b);
	}
}

⌨️ 快捷键说明

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