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

📄 keyandmousecommand.java

📁 一个可视化编辑器的基础结构
💻 JAVA
字号:
package org.goshawk.workflow.GUI.MouseCommand;

import java.awt.event.MouseEvent;

import org.goshawk.workflow.GUI.Display.EditorCanvas;
import org.goshawk.workflow.GUI.Display.EditorFrame;
import org.goshawk.workflow.GUI.Display.ShapeMap;
import org.goshawk.workflow.GUI.ShapeShell.ArrowShell;
import org.goshawk.workflow.GUI.ShapeShell.ShapeShell;

public class KeyAndMouseCommand implements MouseCommand
{
	private int startX = 0;
	private int startY = 0;
	private ShapeShell target = null;
	private ShapeShell origin = null;
	private EditorCanvas canvas = EditorFrame.getCanvas();
	private ShapeMap shapeMap = canvas.getShapeMap();
	private boolean isDragged = false;
	
	public void mouseReleased(MouseEvent event)
	{
		EditorFrame.getCanvas().getShapeMap().remove(FLOW_ARROW);
		target = shapeMap.getShapeWithMouse(event.getX(),event.getY(),false);
		if(isDragged)
		{
			if(origin!=null&&target!=null&&!target.getId().equals(origin.getId()))
			{
				origin.addOtherShape(target);
			}
		}
		else
		{
			if(target!=null)
			{
				target.setSelected(true);
				shapeMap.put(target.getId(),target);
			}
		}
		isDragged = false;
		EditorFrame.getCanvas().repaint();
		EditorFrame.getCanvas().repaint();
	}

	public void mouseDragged(MouseEvent event)
	{
		ArrowShell arrow = new ArrowShell(startX,startY,event.getX(),event.getY());
		arrow.setId(FLOW_ARROW);
		EditorFrame.getCanvas().addShapeShell(arrow.getId(),arrow);
		EditorFrame.getCanvas().repaint();
		isDragged = true;
	}

	public void mousePressed(MouseEvent event)
	{
		origin = shapeMap.getShapeWithMouse(event.getX(),event.getY(),false);
		if(origin!=null)
		{
			startX = origin.getCenterX();
			startY = origin.getCenterY();
		}
	}

	public boolean process(MouseEvent event)
	{
		return false;
	}

	public void setCanvas(EditorCanvas canvas)
	{
		
	}
	
}

⌨️ 快捷键说明

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