boxhandlekit.java

来自「JHotDraw学习过程中对数组的测试程序haha 学习过程中对数组的测试程序」· Java 代码 · 共 187 行

JAVA
187
字号
/* * @(#)BoxHandleKit.java 5.1 * */package CH.ifa.draw.standard;import CH.ifa.draw.framework.*;import java.awt.*;import java.util.Vector;/** * A set of utility methods to create Handles for the common * locations on a figure's display box. * @see Handle */ // TBD: use anonymous inner classes (had some problems with JDK 1.1)public class BoxHandleKit {    /**     * Fills the given Vector with handles at each corner of a     * figure.     */    static public void addCornerHandles(Figure f, Vector handles) {        handles.addElement(southEast(f));        handles.addElement(southWest(f));        handles.addElement(northEast(f));        handles.addElement(northWest(f));    }    /**     * Fills the given Vector with handles at each corner     * and the north, south, east, and west of the figure.     */    static public void addHandles(Figure f, Vector handles) {        addCornerHandles(f, handles);        handles.addElement(south(f));        handles.addElement(north(f));        handles.addElement(east(f));        handles.addElement(west(f));    }    static public Handle south(Figure owner) {        return new SouthHandle(owner);    }    static public Handle southEast(Figure owner) {        return new SouthEastHandle(owner);    }    static public Handle southWest(Figure owner) {        return new SouthWestHandle(owner);    }    static public Handle north(Figure owner) {        return new NorthHandle(owner);    }    static public Handle northEast(Figure owner) {        return new NorthEastHandle(owner);    }    static public Handle northWest(Figure owner) {        return new NorthWestHandle(owner);    }    static public Handle east(Figure owner) {        return new EastHandle(owner);    }    static public Handle west(Figure owner) {        return new WestHandle(owner);    }}class NorthEastHandle extends LocatorHandle {    NorthEastHandle(Figure owner) {        super(owner, RelativeLocator.northEast());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(r.x, Math.min(r.y + r.height, y)),            new Point(Math.max(r.x, x), r.y + r.height)        );    }}class EastHandle extends LocatorHandle {    EastHandle(Figure owner) {        super(owner, RelativeLocator.east());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(r.x, r.y), new Point(Math.max(r.x, x), r.y + r.height)        );    }}class NorthHandle extends LocatorHandle {    NorthHandle(Figure owner) {        super(owner, RelativeLocator.north());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(r.x, Math.min(r.y + r.height, y)),            new Point(r.x + r.width, r.y + r.height)        );    }}class NorthWestHandle extends LocatorHandle {    NorthWestHandle(Figure owner) {        super(owner, RelativeLocator.northWest());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(Math.min(r.x + r.width, x), Math.min(r.y + r.height, y)),            new Point(r.x + r.width, r.y + r.height)        );    }}class SouthEastHandle extends LocatorHandle {    SouthEastHandle(Figure owner) {        super(owner, RelativeLocator.southEast());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(r.x, r.y),            new Point(Math.max(r.x, x), Math.max(r.y, y))        );    }}class SouthHandle extends LocatorHandle {    SouthHandle(Figure owner) {        super(owner, RelativeLocator.south());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(r.x, r.y),            new Point(r.x + r.width, Math.max(r.y, y))        );    }}class SouthWestHandle extends LocatorHandle {    SouthWestHandle(Figure owner) {        super(owner, RelativeLocator.southWest());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(Math.min(r.x + r.width, x), r.y),            new Point(r.x + r.width, Math.max(r.y, y))        );    }}class WestHandle extends LocatorHandle {    WestHandle(Figure owner) {        super(owner, RelativeLocator.west());    }    public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {        Rectangle r = owner().displayBox();        owner().displayBox(            new Point(Math.min(r.x + r.width, x), r.y),            new Point(r.x + r.width, r.y + r.height)        );    }}

⌨️ 快捷键说明

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