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

📄 creationtool.java

📁 JHotDraw学习过程中对数组的测试程序haha 学习过程中对数组的测试程序
💻 JAVA
字号:
/* * @(#)CreationTool.java 5.1 * */package CH.ifa.draw.standard;import java.awt.*;import java.awt.event.MouseEvent;import CH.ifa.draw.framework.*;/** * A tool to create new figures. The figure to be * created is specified by a prototype. * * <hr> * <b>Design Patterns</b><P> * <img src="images/red-ball-small.gif" width=6 height=6 alt=" o "> * <b><a href=../pattlets/sld029.htm>Prototype</a></b><br> * CreationTool creates new figures by cloning a prototype. * <hr> * @see Figure * @see Object#clone */public class CreationTool extends AbstractTool {    /**     * the anchor point of the interaction     */    private Point   fAnchorPoint;    /**     * the currently created figure     */    private Figure  fCreatedFigure;    /**     * the prototypical figure that is used to create new figures.     */    private Figure  fPrototype;    /**     * Initializes a CreationTool with the given prototype.     */    public CreationTool(DrawingView view, Figure prototype) {        super(view);        fPrototype = prototype;    }    /**     * Constructs a CreationTool without a prototype.     * This is for subclassers overriding createFigure.     */    protected CreationTool(DrawingView view) {        super(view);        fPrototype = null;    }    /**     * Sets the cross hair cursor.     */    public void activate() {        view().setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));    }    /**     * Creates a new figure by cloning the prototype.     */    public void mouseDown(MouseEvent e, int x, int y) {        fAnchorPoint = new Point(x,y);        fCreatedFigure = createFigure();        fCreatedFigure.displayBox(fAnchorPoint, fAnchorPoint);        view().add(fCreatedFigure);    }    /**     * Creates a new figure by cloning the prototype.     */    protected Figure createFigure() {        if (fPrototype == null)		    throw new HJDError("No protoype defined");        return (Figure) fPrototype.clone();    }    /**     * Adjusts the extent of the created figure     */    public void mouseDrag(MouseEvent e, int x, int y) {        fCreatedFigure.displayBox(fAnchorPoint, new Point(x,y));    }    /**     * Checks if the created figure is empty. If it is, the figure     * is removed from the drawing.     * @see Figure#isEmpty     */    public void mouseUp(MouseEvent e, int x, int y) {        if (fCreatedFigure.isEmpty())            drawing().remove(fCreatedFigure);        fCreatedFigure = null;        editor().toolDone();    }    /**     * Gets the currently created figure     */    protected Figure createdFigure() {        return fCreatedFigure;    }}

⌨️ 快捷键说明

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