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

📄 graphicsmanager.java

📁 JAVA 数学程序库 提供常规的数值计算程序包
💻 JAVA
字号:
package jmathlib.core.graphics;

import java.util.Vector;
import jmathlib.core.interpreter.ErrorLogger;
import jmathlib.core.graphics.properties.*;

public class GraphicsManager extends HandleObject
{

	/**A list of all figures*/	
	Vector figures = new Vector();

	/** current figure that is used for plot()... commands*/
	private int currentFigure = -1;

    /** properties */
    //CallbackObjectP
    //DoubleStructProperty CommandWindowSizeP;
    //CurrentFigureP
    //BooleanProperty DiaryP = new BooleanProperty(this, "Diary", true);
    //DiaryFileP
    //BooleanProperty EchoP = new BooleanProperty(this, "Echo", true);
    //FixedWithFontNameP
    //FormatP
    //FormatSpacingP
    //LanguageP
    //DoubleStructProperty MonitorPositionsP
    //BooleanProperty MoreP
    //PointerLocationP
    //PointerWindowP
    //RecursionLimitP
    //ScreenDepthP
    //ScreenPicxelsPerInchP
    //ScreenSizeP
    //BooleanProperty ShowHiddenHandlesP
    UnitsProperty UnitsP = new UnitsProperty(this, "Units", "pixels");
    //BooleanProperty BeeingDeletedP
    //ButtonDownFcnP
    //ChildrenP
    //BooleanProperty ClippingP
    //CreateFcnP
    //DeleteFcnP
    //BusyActionP
    //BooleanProperty HandleVisibilityP
    //BooleanProperty HitTestP
    //BooleanProperty InterruptibleP = new BooleanProperty(this, "Interruptible", true);
    //ParentP
    BooleanProperty SelectedP = new BooleanProperty(this, "Selected", false);
    BooleanProperty SelectionHighlightP = new BooleanProperty(this, "SelectionHighlight", true);
    //TagP
    //TypeP
    //UIContextMenuP
    //UserDataP
    BooleanProperty VisibileP = new BooleanProperty(this, "Visible", true);
    
	public GraphicsManager()
	{

	}

	public FigureObject getCurrentFigure() 
	{
		// If no figure was created before, create one.
		//if (currentFigure == -1) createNewFigure();

		// find current figure
	    for(int n = 0; n < figures.size(); n++)
		{
			if ( ((FigureObject)figures.elementAt(n)).getFigureNumber() == currentFigure )
				return (FigureObject)figures.elementAt(n);
		}

		// If this point is reached the figure number does not exist any more
		// If no figure was created before, create one.
		createNewFigure();				
		return getCurrentFigure();
	}


	public void createNewFigure() 
	{
		createNewFigure( getUnusedFigureNumber() );

		ErrorLogger.debugLine("GraphicsManager: createNewFigure: "+currentFigure);
	}

	public void createNewFigure(int _figureNo) 
	{
		if (_figureNo < 1 ) return;

		// The current figure is switch to this number anyway, so that all
        //  subsequent graphics-commands go to this figure
		currentFigure    = _figureNo;

		// check if the figure with number _figureNo is already created
		if (findFigureNumber(_figureNo)) return;

		FigureObject fig = new FigureObject(currentFigure);
		fig.setGraphicsManager(this);
		figures.addElement( fig );

		ErrorLogger.debugLine("GraphicsManager: addFigure: "+currentFigure);
	}


	/**check the figures vector if a figure with the number _figureNo exists*/
	private boolean findFigureNumber(int _figureNo)
	{
		FigureObject fig = findFigure(_figureNo);
		return (fig != null);
	}

	private FigureObject findFigure(int _figureNo)
	{
	        for(int n = 0; n < figures.size(); n++)
		{
			if ( ((FigureObject)figures.elementAt(n)).getFigureNumber() == _figureNo )
				return (FigureObject)figures.elementAt(n);
		}
		return null;
	}

	/**return a figure number that is not already used*/
	private int getUnusedFigureNumber()
	{
		int number = 1;

		while (true)
		{
			if (findFigureNumber( number ) == false) return number;
			number++;
		}
	}


	public int getCurrentFigureNumber() 
	{
		return currentFigure;
	}

	public void setCurrentFigure(int _currentFigure)
	{
		if (!findFigureNumber(_currentFigure)) return;

		currentFigure = _currentFigure;
	}

    // public FigureObject getFigure(int index)
	//{
	//	if(index > -1)
	//		return (FigureObject)figures.elementAt(index);
	//	else
	//		return null;
	//}


	public void removeFigure(int _figureNo)
	{

		// check if this figure is the  "current figure"
		if (_figureNo == currentFigure) currentFigure = -1;

		// find figure
	    for(int n = 0; n < figures.size(); n++)
		{
			if ( ((FigureObject)figures.elementAt(n)).getFigureNumber() == _figureNo )
			{
				figures.removeElementAt(n);
			}
		}

		if (currentFigure < 1 && figures.size() > 0)
			currentFigure = ((FigureObject)figures.elementAt(0)).getFigureNumber();
	}

	public void findProperty(String property)
	{

	}

	public void setProperty(String property, double value)
	{

	}

	public void setProperty(String property, String value)
	{

	}

	public void closeAll()
	{
		for(int n = 0; n < figures.size(); n++)
			((FigureObject)figures.elementAt(n)).close(false);
		figures.clear();
		currentFigure = -1;
	}

	public void closeFigure(int figureNo)
	{
		if (figureNo < 1)
		{
			if (currentFigure >= 1)
				closeFigure (currentFigure);
		}
		else
		{
			FigureObject fig = findFigure(figureNo);
			if (fig != null)
				fig.close();
		}
	}

	/*public HandleObject getHandleObject(int handle)
	{
		try { return HandleObject.getHandleObject(handle); }
		catch (Exception e) { 
		    ErrorLogger.debugLine("GraphicalManager: handle not found");      
        }
		return null;
	}*/
}

⌨️ 快捷键说明

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