📄 rectboundedshape.java
字号:
/* * RectBoundedShape.java * * Created on April 29, 2005, 4:48 PM */package hysun.draw;import java.awt.*;import java.awt.event.MouseEvent;/** * * @author hysun */public abstract class RectBoundedShape implements IShape { protected Color color; protected Stroke stroke; protected int startX, startY, endX, endY; protected RectBoundedShape(Color c, Stroke s, int x, int y) { color = c; stroke = s; startX = endX = x; startY = endY = y; } public void processCursorEvent(MouseEvent e, int t) { if (t != IShape.CURSOR_DRAGGED) return; int x = e.getX(); int y = e.getY(); if (e.isShiftDown()) { regulateShape(x, y); } else { endX = x; endY = y; } } /** * Regulate the bounding rectangle to a square with ending point * coordinate derived from the specified x, y. */ protected void regulateShape(int x, int y) { int w = x - startX; int h = y - startY; int s = Math.min(Math.abs(w), Math.abs(h)); if (s == 0) { endX = startX; endY = startY; } else { endX = startX + s * (w / Math.abs(w)); endY = startY + s * (h / Math.abs(h)); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -