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

📄 editorcanvas.java

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

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.image.BufferedImage;
import java.util.Collection;
import java.util.Iterator;
import org.goshawk.workflow.GUI.ShapeShell.ShapeShell;

public class EditorCanvas extends Panel 
{
	private EditorCanvasExectuor executor = new EditorCanvasExectuor(this);
	
	private static final long serialVersionUID = -2271634378286788915L;

	private Image doubleBuffer = null;
	
	private ShapeMap shapeMap = new ShapeMap();
	
	private int width = 0;
	
	private int height = 0;
	
	public EditorCanvas(int width,int height)
	{
		this.width = width;
		this.height = height;
		doubleBuffer = new BufferedImage(width,height,BufferedImage.TYPE_USHORT_555_RGB);
		this.setBounds(0,0,width,height);
	}

	public ShapeMap getShapeMap()
	{
		return shapeMap;
	}

	public void addShapeShell(String id,ShapeShell shape)
	{
		shapeMap.put(id,shape);
	}
	
	public ShapeShell getShapeShell(String id)
	{
		return (ShapeShell)shapeMap.get(id);
	}
	
	public void setShapeMap(ShapeMap shapeMap)
	{
		this.shapeMap = shapeMap;
	}

	public void paint(Graphics g)
	{
		Graphics2D g2 = (Graphics2D) doubleBuffer.getGraphics();
		g2.fillRect(0,0,width,height);
		Color color = new Color(0,2,3);
		g2.setColor(color);
		Collection shapeSet = shapeMap.values();
		Iterator iter = shapeSet.iterator();
		while(iter.hasNext())
		{
			ShapeShell shape = (ShapeShell)iter.next();
			if(shape!=null)
			{
				shape.paint(g2);
			}
		}
		g.drawImage(doubleBuffer,0,0,this);
	}
	
	public void update(Graphics g)
	{
		paint(g);
	}
	
	/**移去canvas中java.awt.Component对象,并使这些对象失去焦点**/
	public void removeComponent()
	{
		this.executor.removeComponent();
	}
}

⌨️ 快捷键说明

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